Sleep メソッド
スクリプトのプロセスをミリ秒で指定された長さだけ非アクティブにした後、実行を再開します。
object
.Sleep(intTime)
引数
- object
WScript オブジェクトです。 - intTime
スクリプトのプロセスを非アクティブにする時間を、ミリ秒単位で指定します。
解説
スクリプトを実行していたスレッドが中断され、使用していた CPU が解放されます。指定した時間が経過すると実行が再開されます。非同期処理または複数の処理を実行している場合やイベントによって起動されるコードがスクリプトに含まれている場合には、Sleep メソッドを使用すると便利です。イベントによって起動されるには、スクリプトは継続的にアクティブになっている必要があります (実行が終了してしまったスクリプトはイベントを検出できません)。スクリプトで処理するイベントは、非アクティブになっている間も処理されます。
メモ Sleep メソッドの引数に 0 または –1 を指定しても、スクリプトが不定時間中断されることはありません。
使用例
次のコードは、1 つの .wsf ファイルを使用して、異なるスクリプト言語 (VBScript および JScript) で記述された 2 つのジョブを実行する例です。ジョブの機能はどちらも同じで、Windows の電卓を起動して簡単な計算を実行するキーストロークを送ります。
<package>
<job id="vbs">
<script language="VBScript">
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc"
WScript.Sleep 100
WshShell.AppActivate "Calculator"
WScript.Sleep 100
WshShell.SendKeys "1{+}"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 500
WshShell.SendKeys "*3"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 2500
</script>
</job>
<job id="js">
<script language="JScript">
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("calc");
WScript.Sleep(100);
WshShell.AppActivate("Calculator");
WScript.Sleep(100);
WshShell.SendKeys("1{+}");
WScript.Sleep(500);
WshShell.SendKeys("2");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(500);
WshShell.SendKeys("*3");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(2500);
</script>
</job>
</package>