Status プロパティ (WshScriptExec)
Exec() メソッドを使って実行したスクリプトのステータス情報を返します。
Object.Status
引数
- Object
WshScriptExec オブジェクトです。
解説
プログラムが非同期的に実行される場合に Status プロパティを使用します。
Status Property は、内部で GetExitCodeProcess を利用して実行したプログラムの返り値を取得します。 GetExitCodeProcess のドキュメントに記載されている通り、返り値が 259 の場合は、プログラムの実行中(STILL_ACTIVE)を示します。 そのため、プログラムの返り値が 259(STILL_ACTIVE)の場合は、Status プロパティは、0 (ジョブはまだ実行中です) になります。 プログラムの返り値が 259(STILL_ACTIVE)の場合は、Exec() メソッドではなくRun() メソッドを利用してプログラムの実行結果を取得してください。
戻り値
Status プロパティは、次のような列挙型の値を返します。
- WshRunning ( = 0)
ジョブはまだ実行中です。 - WshFinished ( = 1)
ジョブの実行が完了しました。
使用例
次のコードは、calc.exe を実行し、実行後のステータス情報を表示する例です。
VBScript
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("calc")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
WScript.Echo oExec.Status
JScript
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("calc");
while (oExec.Status == 0)
{
WScript.Sleep(100);
}
WScript.Echo(oExec.Status);