KeyWait
키보드나 마우스, 죠이스틱의 버튼이 밀린다/떼어 놓아질 때까지 대기
KeyWait, KeyName [, Options]
Parameters
인수명 | 설명 |
---|
KeyName |
문자 키의 문자나키 일람에 있는 키명.
죠이스틱의Joy1...Joy32이외의 요소는 사용 할 수 없다.
|
Options |
이하의 것을 반각 스페이스 단락으로 지정.
- D
- 눌러 내릴 수 있는 것을 기다린다(통상은 떼어 놓아지는 것을 기다린다)
- L
- 강제적으로 논리적 판정을 사용
- Tn
- n에 대기하는 최대초수를 지정(례:T3).소수도 지정 가능.
|
ErrorLevel
T옵션으로 지정한 초수가 경과했을 경우 「1」, 그 이외는 「0」
Remarks
Options하지만 아무것도 지정되지 않았던 경우, 지정한 키가 떼어 놓아질 때까지 계속 쭉 대기한다.
WindowsNT계로 키보드/마우스 훅이 사용되고 있는 경우, 물리적인 키/버튼 상태(유저가 실제로 키/버튼을 누르고 있을까)에 의해서 판정된다.
#InstallKeybdHook(이)나#InstallMouseHook지령으로, 강제적으로 훅을 유효하게 하는 것이 가능.
상기의 조건에 들어맞지 않는 경우, 논리적인 상태로 판정된다.
이 경우,AutoHotkey의Send커멘드와 같은 프로그램에 의해서 생성된 조작에도 반응해 버린다.
대기중은 hot key나 타이머등에서 기동되었다스렛드하지만 끼어들 수 있다.
복수의 키가 지정 상태가 되는 것을 기다리게 한 싶은 경우는, 복수의KeyWait(을)를 연속해 실행하면 좋다
KeyWait,Control
KeyWait,Alt
복수의 키 중 어떤 것인가가 밀리는 것을 기다리고 싶은 경우는,Input커멘드를 사용한다
Related
Key List, GetKeyState, Input, KeyHistory, #InstallKeybdHook, #InstallMouseHook, ClipWait, WinWait
Example(s)
KeyWait, a ; Wait for the A key to be released.
KeyWait, LButton, D ; Wait for the left mouse button to be pressed down.
KeyWait, Joy1, D T3 ; Wait up to 3 seconds for the first joystick button to be pressed down.
KeyWait, LAlt, L ; Wait for the left-alt key to be logically released.
; Hotkey example:
~Capslock::
KeyWait, Capslock ; Wait for user to physically release it.
MsgBox You pressed and released the Capslock key.
return
; Remapping example:
; The left mouse button is kept held down while NumpadAdd is down,
; which effectively transforms NumpadAdd into the left mouse button.
*NumpadAdd::
MouseClick, left,,, 1, 0, D ; Hold down the left mouse button.
KeyWait, NumpadAdd ; Wait for the key to be released.
MouseClick, left,,, 1, 0, U ; Release the mouse button.
return
; This example shows how to detect when a key has been double-pressed (similar to double-click):
; It relies on #MaxThreadsPerHotkey being at its default setting of 1.
~RControl::
if A_PriorHotkey <> ~RControl
{
KeyWait, RControl
return
}
if A_TimeSincePriorHotkey > 400 ; Too much time between presses, so this isn't a double-press.
{
KeyWait, RControl
return
}
MsgBox You double-pressed the right control key.
return