指定された時間だけ待ってから続行します。
Sleep Delay
型:整数
0から2147483647(24日間)の間の休止時間(ミリ秒)。
OSの時間管理システムの粒度のため、Delayは通常、10ミリ秒または15.6ミリ秒の倍数に切り上げられる(インストールされているハードウェアとドライバーの種類によって異なる)。ディレイを短くするには、例を参照。
CPUに負荷がかかっている場合、実際の遅延時間は要求されたものよりも長くなるかもしれない。これは、OSがスクリプトに別のタイムスライスを与える前に、各必要なプロセスにCPU時間のスライス(通常20ミリ秒)を与えるためである。
遅延を0にすると、スクリプトの現在のタイムスライスの残りを、それを 必要とする他のプロセス(スクリプトより優先順位が著しく低くない限り)に渡す。したがって、遅延が0の場合、実際の遅延は0~20ms(またはそれ以上)となり、必要とされるプロセスの数に依存する(必要とされるプロセスがない場合、遅延はまったく発生しない)。しかし、Delayを0にすると、Delayが長くなるよりも短くなるはずだ。
スリープ中、新しいスレッドは ホットキー、カスタムメニュー、タイマーで起動できる。
Sleep -1:ディレイを-1にすると、スクリプトはスリープせず、すぐにメッセージキューをチェックするようになる。これは、保留中の中断をランダムな場所ではなく、特定の場所に強制的に発生させるために使用できる。詳細はCriticalを参照のこと。
SetKeyDelay、SetMouseDelay、SetControlDelay、SetWinDelay
MyVar := 30 * 60000 ; 30 means minutes and times 60000 gives the time in milliseconds. Sleep MyVar ; Sleep for 30 minutes.
通常の10ミリ秒や15.6ミリ秒よりも短い時間でスリープする方法を示します。注:このようなスクリプトが実行されている間、オペレーティング・システム全体とすべてのアプリケーションは、以下のtimeBeginPeriodの影響を受ける。
SleepDuration := 1 ; This can sometimes be finely adjusted (e.g. 2 is different than 3) depending on the value below. TimePeriod := 3 ; Try 7 or 3. See comment below. ; On a PC whose sleep duration normally rounds up to 15.6 ms, try TimePeriod=7 to allow ; somewhat shorter sleeps, and try TimePeriod=3 or less to allow the shortest possible sleeps. DllCall("Winmm\timeBeginPeriod", "UInt", TimePeriod) ; Affects all applications, not just this script's DllCall("Sleep"...), but does not affect SetTimer. Iterations := 50 StartTime := A_TickCount Loop Iterations DllCall("Sleep", "UInt", SleepDuration) ; Must use DllCall instead of the Sleep function. DllCall("Winmm\timeEndPeriod", "UInt", TimePeriod) ; Should be called to restore system to normal. MsgBox "Sleep duration = " . (A_TickCount - StartTime) / Iterations