WinWaitActive / WinWaitNotActive

指定されたウィンドウがアクティブになるまで、またはアクティブでなくなるまで待ちます。

WinWaitActive WinTitle, WinText, Timeout, ExcludeTitle, ExcludeText
WinWaitNotActive WinTitle, WinText, Timeout, ExcludeTitle, ExcludeText

パラメータ

WinTitle、WinText、ExcludeTitle、ExcludeText

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

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

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

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

タイムアウト

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

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

戻り値

型:整数

WinWaitActiveは、条件にマッチすればアクティブなウィンドウのHWND(ユニークID)を返し、関数がタイムアウトした場合は0を返す。

WinWaitNotActiveは、アクティブなウィンドウが条件に一致しない場合は1を返し、関数がタイムアウトした場合は0を返す。

備考

アクティブウィンドウが関数の期待値を満たしている場合、関数はタイムアウトを待ちません。その代わり、スクリプトを再開できるように、即座にリターンする。

"A"はその時点でアクティブなウィンドウにマッチするので、WinWaitNotActive "A"は通常無期限に待つ。代わりに別のウィンドウがアクティブになるのを待つには、次の例のように一意のIDを指定する:

WinWaitNotActive WinExist("A")

Both WinWaitActive and WinWaitNotActive will update the Last Found Window if a matching window is active when the function begins or becomes active while the function is waiting.

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

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

WinWait, WinWaitClose, WinExist, WinActive, SetTitleMatchMode, DetectHiddenWindows

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

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