指定されたプロセスが存在するのを待ちます。
PID := ProcessWait(PIDOrName , Timeout)
数字(PID)またはプロセス名のいずれかを指定します:
PID:プロセスID。これは、ある特定のプロセスを一意に識別するための番号です。(この番号は、そのプロセスが生きている間だけ有効です)。新しく立ち上げたプロセスのPIDは、Run関数で決定することができます。同様に、WinGetPIDでウィンドウのPIDを知ることができます。ProcessExistは、PIDを発見するために使用することもできます。
名前:プロセスの名前は通常、notepad.exeやwinword.exeなどの実行ファイルと同じです(パスなし)。一つの名前が複数の実行中のプロセスに一致する可能性があるため、最初のプロセスのみが操作されることになります。名前の大文字と小文字は区別されません。
省略したときは、無期限に待機します。それ以外の場合は、タイムアウトまでの待ち時間を秒数(小数点以下)で指定します。
Type: Integer
指定されたプロセスが発見された場合、そのプロセスのプロセス ID(PID)を返す。関数がタイムアウトした場合は、0が返されます。
プロセスは100ミリ秒ごとにチェックされ、条件が満たされた瞬間に関数は待機を停止します。つまり、タイムアウトが切れるのを待つのではなく、すぐに復帰してスクリプトの実行を継続するのです。また、機能が待機状態にある間は、ホットキー、カスタムメニュー項目、またはタイマーによって新しいスレッドを起動することができます。
ProcessWaitClose、Run、WinWait、Process関数、Win関数
メモ帳のプロセスが起動するのを待ちます。5.5秒以内に1つでも起動したときは、その優先度は低に設定され、スクリプト自身の優先度は高に設定されます。その後、5秒以内にプロセスを閉じるよう試みます。
NewPID := ProcessWait("notepad.exe", 5.5)
if not NewPID
{
MsgBox "The specified process did not appear within 5.5 seconds."
return
}
; それ以外の場合:
MsgBox "A matching process has appeared (Process ID is " NewPID ")."
ProcessSetPriority "Low", NewPID
ProcessSetPriority "High" ; Have the script set itself to high priority.
WinClose "Untitled - Notepad"
WaitPID := ProcessWaitClose(NewPID, 5)
if WaitPID ; The PID still exists.
MsgBox "The process did not close within 5 seconds."