SetKeyDelay

SendControlSend로 키를 누른 후에 지연될 시간을 설정합니다.

SetKeyDelay , Delay, PressDuration, Play

매개변수

Delay

밀리초 단위 시간, 표현식 가능. -1이면 지연 시간이 전혀 없고 0이면 가능하면 적게 지연됩니다 (그렇지만, Play 매개변수가 존재하면, 0과 -1 모두 지연 시간이 없습니다). 이 매개변수를 비워 두면 현재 Delay를 유지합니다.

SetKeyDelay가 스크립트에 사용되지 않으면, 기본 Delay는 전통적인 SendEvent 모드에 대하여 10입니다. SendPlay mode에 대해서 기본 Delay는 -1입니다. 두 모드 모두 기본 PressDuration (아래 참조)는 -1입니다.

PressDuration

어떤 게임과 기타 특수한 어플리케이션은 각 키눌림 안에서 지연 시간을 요구합니다; 즉, 키가 눌린 후 다시 떼기 까지 그 사이에 지연 시간을 요구할 수 있습니다.

-1이면 지연 시간이 전혀 없습니다 (기본 값). 그리고 0이면 가능하면 적게 지연됩니다 (그렇지만, Play 매개변수가 존재하면, 0과 -1 모두 지연 시간이 없습니다). 이 매개변수를 생략하면 현재 PressDuration이 바뀌지 않습니다.

주의: PressDuration는 전송 중인 키를 지원하기 위하여 수식 키 상태를 변경한 다음에도 지연 시간을 생산합니다 (Ctrl, Alt, Shift, 그리고 Win).

이 매개변수는 표현식일 수 있습니다.

Play [v1.0.43+]

단어 Play는 위의 설정을 전통적인 SendEvent 모드가 아니라 SendPlay 모드에 적용합니다. 스크립트가 이 매개변수를 사용하지 않으면, 지연 시간은 SendPlay에 대하여 언제나 -1/-1입니다.

논평

주의: SendInput은 SetKeyDelay를 준수하지 않습니다; 그 모드에서는 키눌림 사이에 지연 시간이 전혀 없습니다. 이는 SendMode Input이 켜져 있을 때 Send도 마찬가지로 적용됩니다.

짧은 지연(잠자기)는 Send 또는 ControlSend가 전송하는 키눌림마다 자동으로 시행됩니다. 이렇게 하면 스크립트의 신뢰성이 개선됩니다. 왜냐하면 창은 가끔 빠르게 밀려 오는 키눌림의 범람 속도를 따라 잡을 수 없기 때문입니다.

During the delay (sleep), the current thread is made uninterruptible.

OS의 시간-유지 시스템의 정밀성 때문에, 지연 시간은 가장 까까운 10 또는 15의 배수로 올림됩니다. 예를 들어, 1과 10 (포함) 사이의 지연 시간은 대부분의Windows XP 시스템에서 10 또는 15와 동등합니다 (아마도 2k도 마찬가지일 것임).

Send/SendEvent 모드에 대하여, 지연 시간이 0이면 내부적으로 Sleep(0)을 실행합니다. 그러면 스크립트의 시간조각(timeslice)의 나머지를 그를 필요로 하는 다른 프로세스에 양보합니다. 남는 게 없으면, Sleep(0)은 전혀 잠자지 않습니다. 대조적으로, 지연 시간이 -1이면 절대 잠자지 않습니다. 더 높은 신뢰를 위해, -1보다는 0을 권장합니다.

지연 시간이 -1로 설정되면, 스크립트의 프로세스 우선순위는 전통적인 SendEvent 모드를 사용할 때 얼마나 빨리 키눌림을 전송할 것인가를 결정하는 중요한 요인이 됩니다. 스크립트의 우선순위를 높이려면, Process, Priority,, High를 사용하십시오. 이 때문에 전형적으로 키눌림이 활성 창이 처리하는 속도보다 더 빨리 전송되지만, 시스템이 지동으로 키눌림을 버퍼 처리해 줍니다. 버퍼 처리된 키눌림은 Send 명령어가 완료된 후에도 계속해서 목표 창에 도달합니다 (심지어 창이 더 이상 활성 창이 아니더라도 상관이 없습니다). 이것은 보통 해가 되지 않습니다. 왜냐하면 같은 창에 연이어 전송되는 키눌림은 이미 버퍼에 자리 잡은 키눌림 뒤에 차곡차곡 쌓이기 때문입니다.

내장 변수 A_KeyDelay에 Send/SendEvent 모드에 대한 현재 Delay 설정이 담겨 있습니다. [v1.1.23+]: A_KeyDuration contains the setting for PressDuration, while A_KeyDelayPlay and A_KeyDurationPlay contain the settings for SendPlay.

새로 기동된 쓰레드마다 (핫키, 맞춤 메뉴 항목, 또는 타이머 서브루틴) 이 명령어에 대한 기본값을 가지고 새로 시작합니다. 이 설정은 이 명령어를 자동-실행 섹션에 (스크립트의 상단 부분) 사용하면 바꿀 수 있습니다.

Send, ControlSend, SendMode, SetMouseDelay, SetControlDelay, SetWinDelay, SetBatchLines, Click

예제

Causes the smallest possible delay to occur after each keystroke sent via Send or ControlSend.

SetKeyDelay, 0