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を含んでいれば一致します。

タイムアウト

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

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

戻り値

型:整数

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

備考

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

WinTitleが無効なHWNDを指定した場合(整数として、またはオブジェクトのHwndプロパティを通して)、関数はタイムアウトの時間切れを待たずに即座に戻ります。同じHWND値で別のウィンドウが作成されるのを待っても、2つのウィンドウの間には何の関係もない可能性が高いので、意味がない。

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

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

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

DetectHiddenWindows もHWND によって識別される隠しウィンドウが検出されるかどうかに影響しますが、これはWinWaitまたはWinWaitCloseと併用した場合に限られます。

WinWaitActive, WinWaitClose, WinExist, WinActive, ProcessWait, SetTitleMatchMode, DetectHiddenWindows

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

Run "notepad.exe"
if WinWait("Untitled - Notepad", , 3)
    WinMinimize ; Use the window found by WinWait.
else
    MsgBox "WinWait timed out."