SendまたはControlSendでキーストロークを送信するたびに発生する遅延時間を設定します。
SetKeyDelay Delay, PressDuration, "Play"
型:整数
If omitted, the current delay is retained. Otherwise, specify the time in milliseconds. 全く遅延させないときは-1を指定し、可能な限り最小の遅延を認めるときは0を指定します。ただし、Playパラメータが存在する場合は、0と-1の両方で遅延は発生しません。
型:整数
ゲームなどの特殊なアプリケーションでは、キーを押した後、離すまでの間に遅延が必要な場合があります。
If omitted, the current press duration is retained. Otherwise, specify the time in milliseconds. 全く遅延させないときは-1を指定し、可能な限り最小の遅延を認めるときは0を指定します。ただし、Playパラメータが存在する場合は、0と-1の両方で遅延は発生しません。
注意:PressDurationは、送信されるキーをサポートするために必要な修飾キー状態(Ctrl、Alt、Shift、Win)の変更後にも遅延を発生させることができます。
型:文字列
If blank or omitted, the delay and press duration are applied to the traditional SendEvent mode. Otherwise, specify the word Play to apply both to the SendPlay mode. If a script never uses this parameter, both are always -1 for SendPlay.
SetKeyDelay関数を使用しないときは、遅延の初期値はは、従来のSendEventモードでは 10、SendPlayモードでは-1です。The default press duration is -1 for both modes.
SetKeyDelayはSendInputでは従わない。そのモードではキーストローク間の遅延はない。これは、SendMode Inputが有効な場合のSendも同様である。
SendまたはControlSendでキーストロークを送信するたびに、短い遅延(スリープ)が自動的に行われます。これはスクリプトの信頼性を高めるためで、キー入力が殺到するとウィンドウが追いつかなくなることがあるためです。
遅延(スリープ)中は、現在のスレッドを中断できないようにする。
OSの時間管理システムの粒度の関係で、遅延は10や15の倍数に切り上げられる場合があります。
Send/SendEventモードでは、遅延が0の場合、内部的にSleep(0)が実行され、スクリプトのタイムスライスの残りを必要とする他のプロセスに提供します。ない場合は、Sleep(0)は全くスリープしない。これに対して、遅延が-1のときは、決してスリープすることはありません。信頼性を高めるために、-1の代わりに0を推奨します。
遅延を-1に設定すると、従来のSendEventモードを使用する場合、スクリプトのプロセス優先度がキーストロークの送信速度に重要な要素となる。スクリプトの優先度を上げるには、ProcessSetPriority "High"
を使用します。この場合、通常、アクティブウィンドウが処理できる速度よりも速くキーストロークが送信されることになりますが、システムは自動的にバッファリングします。バッファリングされたキー入力は、Send関数が完了した後も(ウィンドウがアクティブでなくなっても)ターゲットウィンドウに到着し続けます。これは、同じウィンドウに送信される後続のキー入力が、すでにバッファにあるキー入力の後ろにキューイングされるため、通常、無害です。
組込変数A_KeyDelayには、Send/SendEvent モードのDelayの現在の設定値が格納される。A_KeyDuration contains the setting for PressDuration, while A_KeyDelayPlay and A_KeyDurationPlay contain the settings for SendPlay.
新しく起動するスレッド(ホットキー、カスタムメニュー項目、時間指定サブルーチンなど)はすべて、この機能のデフォルト設定で新しくスタートします。このデフォルトは、スクリプト起動時にこの関数を使用することで変更することができます。
Send、ControlSend、SendMode、SetMouseDelay、SetControlDelay、SetWinDelay、Click
SendまたはControlSendで送信される各キーストロークの後に、可能な限り小さな遅延が発生するようにします。
SetKeyDelay 0