WaitForWindow

概要: baWaitForWindowは任意のタイムアウトでウィンドウが指定した状態になるのを待ちます。

シンタックス: Result = baWaitForWindow( WinHandle , State , TimeOut )

パラメータ: #integer, #string, #integer
WinHandle 待つ対象となるウィンドウのハンドル。
State 待つ対象となる状態。次のいずれかになります。
 "inactive" ウィンドウが非アクティブになるのを待ちます
 "active" ウィンドウがアクティブになるのを待ちます
 "closed" ウィンドウが閉じられるのを待ちます
TimeOut 待ち時間の最大チック数。1チックは1/60秒です。0を指定すると無期限になります。

戻り値: #integer
ウィンドウが存在しないか、指定した状態になる前にタイムアウトが発生した場合は0を返します。
ウィンドウが指定した状態になったときは1を返します。

例: OK = baWaitForWindow( baWinHandle() , "active" , 300 ) -- Directorのウィンドウがアクティブになるまで最大5秒間待ちます

ノート: "inactive"オプションは、Directorウィンドウが別プログラムの起動後に非アクティブになるのを待つときに便利です。Directorウィンドウがアクティブでなくなれば、別プログラムが起動してフォーカスが移ったということです。
下記はDirectorからreadmeファイルを開き、ユーザの作業が終了するのを待つサンプルコードです。

if baOpenFile( "readme.txt" , "normal" ) > 32 then -- readmeファイルを開く
    wnd = baNextActiveWindow( 0 ) -- メモ帳のウィンドウハンドルを取得
    baWaitForWindow( baWinHandle() , "active" , 0 ) -- Directorウィンドウがアクティブになるのを待つ、すなわちメモ帳が閉じられたかユーザがDirectorに切り替えた
    if baWindowExists( wnd ) then baCloseWindow( wnd ) -- メモ帳を閉じる
end if

関連項目: baWaitTillActive
baNextActiveWindow
baActiveWindow