SetControlDelay

각 콘트롤-변경 명령어 다음에 지연 시간을 설정합니다.

SetControlDelay, Delay

매개변수

Delay

밀리초 단위 시간, 표현식 가능. -1이면 지연 시간이 전혀 없습니다. 0이면 가능한 적게 지연됩니다. 설정하지 않으면 기본값으로 20입니다.

논평

짧은 지연 시간은 (sleep) 콘트롤을 변경하는 Control 명령어마다 자동으로 삽입됩니다. 즉, Control, ControlMove, ControlClick, ControlFocus, 그리고 ControlSetText (ControlSendSetKeyDelay를 사용). 이렇게 하는 이유는 스크립트의 신뢰성을 향상시키기 위해서입니다. 콘트롤은 종종 이런 명령어 때문에 변경이 되면 "잠시 쉬는 시간"이 필요합니다. 쉬는 시간이 있어야 자신을 갱신할 수 있고 스크립트가 전송하려고 시도하는 다음 명령어에 응답할 수 있기 때문입니다.

지연 시간이 -1이라도 (전혀 지연 시간 없음) 허용하지만, 적어도 0은 사용하기를 권장합니다. 그러면 CPU에 부하가 많아도 스크립트가 올바르게 실행될 것이라는 보장이 높아집니다.

지연 시간이 0이면 내부적으로 Sleep(0)을 실행합니다. 이는 그를 필요로 하는 다른 프로세스에 스크립트의 시간조각(timeslice)의 나머지를 나누어 줍니다. 남는 게 없으면, Sleep(0)은 전혀 잠자지 않습니다.

CPU가 느리거나 부하가 많으면, 또는 창 애니메이션이 켜져 있으면, 높은 지연 시간이 필요합니다.

내장 변수 A_ControlDelay에 현재 설정이 담겨 있습니다.

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

Control, ControlMove, ControlClick, ControlFocus, ControlSetText, SetWinDelay, SetKeyDelay, SetMouseDelay, SetBatchLines

예제

Causes the smallest possible delay to occur after each control-modifying command.

SetControlDelay, 0