ProcessWait

指定されたプロセスが存在するのを待ちます。

PID := ProcessWait(PIDOrName , Timeout)

パラメータ

PIDOrName

型:整数または文字列

数字(PID)またはプロセス名のいずれかを指定します:

PID:プロセスID。これは、ある特定のプロセスを一意に識別するための番号です。(この番号は、そのプロセスが生きている間だけ有効です)。新しく立ち上げたプロセスのPIDは、Run関数で決定することができます。同様に、WinGetPIDでウィンドウのPIDを知ることができます。ProcessExistは、PIDを発見するために使用することもできます。

名前:プロセスの名前は通常、notepad.exeやwinword.exeなどの実行ファイルと同じです(パスなし)。一つの名前が複数の実行中のプロセスに一致する可能性があるため、最初のプロセスのみが操作されることになります。名前の大文字と小文字は区別されません。

タイムアウト

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

省略した場合は、無期限に待機します。それ以外の場合は、タイムアウトまでの待ち時間を秒数(小数点以下)で指定します。

戻り値

型:整数

指定されたプロセスが発見された場合、そのプロセスのプロセス ID(PID)を返す。関数がタイムアウトした場合は、0が返されます。

備考

プロセスは100ミリ秒ごとにチェックされ、条件が満たされた瞬間に関数は待機を停止します。つまり、タイムアウトが切れるのを待つのではなく、すぐに復帰してスクリプトの実行を継続するのです。また、機能が待機状態にある間は、ホットキーカスタムメニュー項目、またはタイマーによって新しいスレッドを起動することができます。

ProcessWaitClose, Run, WinWait, Process functions, Win functions

Waits for a Notepad process to appear. If one appears within 5.5 seconds, its priority is set to low and the script's own priority is set to high. After that, an attempt is made to close the process within 5 seconds.

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."