WinWait

指定されたウィンドウが存在するまで待ちます。

WinWait WinTitle, WinText, Timeout, ExcludeTitle, ExcludeText

パラメータ

WinTitle, WinText, ExcludeTitle, ExcludeText

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

これらのうち少なくとも1つは必須である。WinTitleには ウィンドウのタイトル、またはターゲットウィンドウを識別するための他の基準WinTextにはターゲットウィンドウの単一のテキスト要素からの部分文字列(付属のWindow Spyユーティリティを使えばわかります)を指定します。

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

ウィンドウのタイトルとテキストは大文字と小文字を区別します。DetectHiddenWindows関数 と DetectHiddenText関数で変更しない限り、初期設定では非表示ウィンドウは検出されず、非表示テキストは検出されます。SetTitleMatchMode関数で変更しない限り、初期設定ではウィンドウのタイトルはその中のどこかにWinTitleまたはExcludeTitleを含んでいれば一致します。

Timeout

型:整数または浮動小数点数

省略した場合は、無期限に待機します。そうでなければ、指定された秒数以上待機することはありません。1秒未満の時間を待機するには、浮動小数点数を指定します。たとえば最大250ミリ秒待機するときは、0.25と指定します。

戻り値

型:整数

この関数は、一致するウィンドウが見つかればそのHWND(ユニークID)を返し、タイムアウトした場合は0を返す。

備考

マッチするウィンドウが存在するときは、タイムアウトになるまで待ちません。代わりに、Last Found Windowを更新して戻り、スクリプトの実行を続行できるようにする。

WinTitleピュアHWNDIntegerまたはHWNDプロパティを持つObjectとして)を指定した場合、隠しウィンドウはDetectHiddenWindowsを使用したときのみ検出されます。これは、WinWaitとWinWaitCloseにのみ適用されます。他のウィンドウ関数の場合、ピュアHWNDを指定すると、DetectHiddenWindowsに関係なく隠しウィンドウが検出されます。

WinTitleが無効なピュアHWNDを指定した場合、関数はタイムアウトの時間切れを待たずに即座に戻ります。同じHWND値で別のウィンドウが作成されるのを待っても、2つのウィンドウの間には何の関係もない可能性が高いので、意味がない。

関数が待機状態にある間、ホットキーカスタムメニュー項目、またはタイマーによって新しいスレッドを起動することができます。

他のスレッドが、この関数のパラメータに使われていた変数の内容を変更しても、この関数にはその変更は反映されない。

WinWaitActiveとは異なり、Last Found Windowは使用できない。したがって、ウィンドウ・パラメータ(WinTitleWinTextExcludeTitleExcludeText)の少なくとも1つは空白であってはならない。

WinWaitActiveWinWaitCloseWinExistWinActiveProcessWaitSetTitleMatchModeDetectHiddenWindows

メモ帳を開き、存在するまで最大3秒待つ。WinWait関数がタイムアウトしたときはエラーメッセージが表示され、そうでないときはメモ帳が最小化されます。

Run "notepad.exe"
if WinWait("Untitled - Notepad", , 3)
    WinMinimize ; WinWait関数で見つかったウィンドウが対象となります。
else
    MsgBox "WinWait timed out."