WinExist

指定されたウィンドウが存在するかどうかを調べ、最初にマッチしたウィンドウのユニークID(HWND)を返します。

UniqueID := WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText)

パラメータ

WinTitle, WinText, ExcludeTitle, ExcludeText

型:文字列整数またはオブジェクト

もしこれらの項目が未設定または省略されたときは、最後に見つかったウィンドウが使用されます。そうでないときは、WinTitleウィンドウタイトルまたはターゲットウィンドウを識別するための他の基準、および/またはWinTextにターゲットウィンドウの単一のテキスト要素からの部分文字列(付属のWindow Spyユーティリティを使えばわかります)を指定します。

ExcludeTitleExcludeTextはウィンドウのタイトルまたはテキストで除外するために使用します。指定の仕方はWinTitleWinTextに似ていますが、ExcludeTitleはウィンドウのタイトル以外の基準(ウィンドウクラスやHWNDなど)を認識しません。

ウィンドウのタイトルとテキストは大文字と小文字を区別します。DetectHiddenWindows関数とDetectHiddenText関数で変更しない限り、初期設定では非表示ウィンドウは検出されず、非表示テキストは検出されます。ただし、pure HWNDsを使ったときは、DetectHiddenWindowsの設定にかかわらず、非表示ウィンドウは常に検出されます。SetTitleMatchModeで変更しない限り、初期設定ではウィンドウタイトルのどこかにWinTitleまたはExcludeTitleを含んでいればマッチします。

戻り値

Type: Integer

この関数は、最初にマッチしたウィンドウのユニークID(HWND)を返す(何もなければ0)。

ゼロでない数字はすべて「true」とみなされるため、WinTitleが存在するときはいつでも、if WinExist(WinTitle)というステートメントは真となる。

備考

適格なウィンドウが存在する場合、Last Found Windowは、そのウィンドウに更新される。

コントロールのHWNDを検出するには(PostMessageSendMessage、またはDllCallで使用するため)、ControlGetHwndまたはMouseGetPosを使用します。

SetWinDelayは、この関数には適用されません。

WinActiveSetTitleMatchModeDetectHiddenWindowsラストファウンドウィンドウProcessExistWinActivateWinWaitActiveWinWaitWinWaitClose#HotIf

上記のWinExist関数によって見つかったメモ帳か別のウィンドウのどちらかをアクティブにします。「ahk_」キーワードとその基準値の間のスペースは省略可能であることに注意してください。

if WinExist("ahk_class Notepad") or WinExist("ahk_class" ClassName)
    WinActivate ; WinExistで見つかったウィンドウを使用します。

アクティブウィンドウのユニークID(HWND)を取得し、報告します。

MsgBox "The active window's ID is " WinExist("A")

電卓が存在しない場合に返します。

if not WinExist("Calculator")
    return