#IfTimeout [AHK_L 8+]

#If 표현식 하나를 평가하는 데 소모될 최대 시간을 설정합니다.

#IfTimeout Timeout

매개변수

Timeout

timeout 값은 밀리초 단위로 전역적으로 적용됩니다.

논평

시간제한은 오랫 동안 실행되는 표현식 때문에 키보드 입력 처리가 지체되지 않도록 구현되어 있습니다. 시간제한 값을 초과하면, 표현식은 계속 평가를 하지만, 키보드 갈고리는 마치 그 표현식이 이미 거짓을 돌려준 것처럼 계속됩니다.

이 지시어를 스크립트에 지정하지 않으면, 마치 1000이 설정되어 있는 것처럼 행위합니다.

시스템은 자신만의 시간제한이 있다는 사실을 명심하십시오. 다음 레지스트리 키에 DWORD 값 LowLevelHooksTimeout로 정의되어 있습니다:

HKEY_CURRENT_USER\Control Panel\Desktop

시스템 시간제한 값을 초과하면, 시스템은 스크립트의 키보드 갈고리 호출을 중지합니다. 그래서 그 갈고리가 재등록되거나 스크립트가 재적재될 때까지 갈고리 핫키들이 작동하지 못합니다. 그 갈고리는 보통 재등록할 수 있습니다. 모든 핫키를 보류하고 풀어주면 됩니다.

Microsoft's documentation is unclear about the details of this timeout, but research indicates the following for Windows 7 and later: If LowLevelHooksTimeout is not defined, the default timeout is 300ms. The hook may time out up to 10 times, but is silently removed if it times out an 11th time.

주어진 핫키에 여러 #If 변형이 들어 있으면, 시간제한은 각 변형마다 독립적으로 적용됩니다. 그래서, 시스템 시간제한을 초과할 가능성이 더 높아집니다. 이 행위는 앞으로 업데이트될 가능성이 있습니다.

다른 지시어처럼, #IfTimeout는 조건적으로 실행할 수 없습니다.

#If

예제

Sets the #If timeout to 10 ms instead of 1000 ms.

#IfTimeout 10