SetWinDelay
WinActivate와 같은 각 창 명령어를 실행한 후에 일어날 지연시간을 설정합니다.
SetWinDelay, Delay
매개변수
- Delay
밀리초 시간, 표현식 가능. -1은 지연시간이 없으며 0이면 가능하면 최소로 지연합니다. 설정하지 않으면, 기본 값은 100입니다.
논평
각 창 명령어가 실행된 후 짧은 지연시간 (잠자기)가 자동으로 실행됩니다. 단, IfWinActive와 IfWinExist는 제외합니다. 이렇게 하는 이유는 스크립트의 신뢰성을 개선하기 위해서입니다. 창은 종종 생성되거나, 활성화되거나 또는 최소화 되거나 등등 변경이 있고 난 후에 일정한 "휴식"시간이 필요합니다. 그래야 창은 자신을 갱신할 기회를 가질 수 있고 스크립트가 그 창에 보내려고 시도하는 다음 명령어에 응답할 수 있기 때문입니다.
지연 시간이 -1이라도 (지연 시간 전혀 없음) 허용하지만, 적어도 0은 사용하기를 권장합니다. 그래야 CPU가 부하가 많더라도 스크립트가 제대로 실행된다는 보장이 높아집니다.
지연 시간이 0이면 내부적으로 Sleep(0)을 실행하는데, 이 함수는 그를 필요로 하는 프로세스에 스크립트의 시간조각(timeslice)의 나머지를 건넵니다. 아무것도 없으면, Sleep(0)은 전혀 잠자지 않습니다.
CPU가 느리거나 부하가 많다면, 또는 창 애니메이션이 켜져 있다면, 더 높은 지연 시간이 필요합니다.
내장 변수 A_WinDelay에 현재 설정이 담겨 있습니다.
새로 기동된 쓰레드는 (예를 들어 핫키, 맞춤 메뉴 항목, 또는 타이머 서브루틴) 이 명령어에 대한 기본 설정을 가지고 새롭게 시작합니다. 이 기본 값은 자동 실행 섹션 (스크립트의 상단)에서 이 명령어를 사용하여 변경할 수 있습니다.
관련 항목
SetControlDelay, SetKeyDelay, SetMouseDelay, SetBatchLines, SendMode
예제
SetWinDelay, 10