掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイアログが出ていることを確認するには? (ID:27088)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんな感じ? var TopMostWindow: HWnd = 0; function DoFindWindow(Window: HWnd; Param: Longint): Boolean; stdcall; begin if (Window <> Application.Handle) and IsWindowVisible(Window) and IsWindowEnabled(Window) and (GetWindowLong(Window, GWL_EXSTYLE) and WS_EX_TOPMOST = 0) then TopMostWindow := Window; result := True; end; function IsShowModal(MainWindow: HWnd): Boolean; begin result := False; TopMostWindow := 0; if not IsWindowEnabled(MainWindow) then EnumThreadWindows(GetCurrentThreadID, @DoFindWindow, 0); if TopMostWindow <> 0 then result := Getwindow(TopMostWindow,GW_HWNDNEXT) = MainWindow; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if IsShowModal(Handle) then Caption := '出てる' else Caption := '出てない'; end; 見落としてるZorderのケースとかもあるかもしれないので 確認、カスタマイズして見てください。。マルチタスクとか? ちなみにこの処理は実行ファイルか シングルスレッドモデルのモジュールでしか成立しません。。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.