Sleep

指定された時間だけ待ってから続行します。

Sleep Delay

パラメータ

Delay

型:整数

0から2147483647(24日間)の間の休止時間(ミリ秒)。

備考

OSの時間管理システムの粒度のため、Delayは通常、10ミリ秒または15.6ミリ秒の倍数に切り上げられる(インストールされているハードウェアとドライバーの種類によって異なる)。ディレイを短くするには、を参照。

CPUに負荷がかかっている場合、実際の遅延時間は要求されたものよりも長くなるかもしれない。これは、OSがスクリプトに別のタイムスライスを与える前に、各必要なプロセスにCPU時間のスライス(通常20ミリ秒)を与えるためである。

遅延を0にすると、スクリプトの現在のタイムスライスの残りを、それを 必要とする他のプロセス(スクリプトより優先順位が著しく低くない限り)に渡す。したがって、遅延が0の場合、実際の遅延は0~20ms(またはそれ以上)となり、必要とされるプロセスの数に依存する(必要とされるプロセスがない場合、遅延はまったく発生しない)。しかし、Delayを0にすると、Delayが長くなるよりも短くなるはずだ。

スリープ中、新しいスレッドホットキーカスタムメニュータイマーで起動できる。

Sleep -1:ディレイを-1にすると、スクリプトはスリープせず、すぐにメッセージキューをチェックするようになる。これは、保留中の中断をランダムな場所ではなく、特定の場所に強制的に発生させるために使用できる。詳細はCriticalを参照のこと。

SetKeyDelaySetMouseDelaySetControlDelaySetWinDelay

実行を続ける前に1秒待つ。

Sleep 1000

実行を続ける前に30分待つ。

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