관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

Hotkey 스크립트 실행중에 hot key를 할당하거나 설정을 변경하거나 한다 본문

AUTOHOTKEY/레퍼런스

Hotkey 스크립트 실행중에 hot key를 할당하거나 설정을 변경하거나 한다

님투 2007. 11. 5. 14:33

Hotkey

스크립트 실행중에 hot key를 할당하거나 설정을 변경하거나 한다

Hotkey, KeyName [, Label, Options]
Hotkey, IfWinActive [, WinTitle, WinText]
Hotkey, IfWinExist [, WinTitle, WinText]
Hotkey, IfWinNotActive [, WinTitle, WinText]
Hotkey, IfWinNotExist [, WinTitle, WinText]

Parameters


인수명 설명
KeyName hot key 정의그리고 사용하는 키명.
벌써 설정되어 있는 hot key의 경우, 이하의 인수에 근거해 설정이 변경된다.
이 때, 대문자 소문자의 차이나 「^!c」와「!^c」(와)과 같은 수식 키 기호의 차례의 차이는 무시된다.
IfWin...서브 커멘드에 의한 조건의 설정이 유효의 경우, 그 조건하에서의 액션이 설정·갱신된다.
Label hot key 입력시에 실행시키고 싶은 라벨명.hot key 라벨도 가능.뒤의 「:」(이)나 「::」(은)는 포함하지 않는다.
벌써 등록되어 있는 hot key의 경우, 여기를 비우는 것으로, 다른 설정만을 변경할 수 있다.
라벨명 외에 이하의 것도 설정할 수 있다.
On
Off(으)로 한 hot key를 재차 유효하게 한다
Off
hot key를 무효로 한다
Toggle
무효와 유효를 바꾼다
AltTab타
각종AltTab액션(을)를 할당한다
Options 이하의 옵션의 편성.
반각 스페이스에서 단락지어도, 전부 연결하고 써도 괜찮다.
UseErrorLevel
어떠한 문제가 발생했을 때, 에러 다이얼로그를 표시하지 않고, 후술의ErrorLevel변수에 값을 대입해 처리를 속행한다
On
정지되고 있는 hot key의Label할당을 갱신하면서, 재차 유효하게 하고 싶을 때에 지정한다.
Off
hot key를 무효로 한다.Label(을)를 할당하면서 무효로 하고 싶을 때에 사용한다.
B
#MaxThreadsBuffer(와)과 같은 버퍼 처리를 실시한다.
B0
버퍼 처리를 실시하지 않는다
Pn
n에 스렛드의 우선도(을)를 지정.예를 들면 「P3」
Tn
n에 스렛드수의 상한을 지정. #MaxThreadsPerHotkey그리고 지정하는 것과 같다.
IfWinActive, IfWinExist, IfWinNotActive, IfWinNotExist hot key가 동작하는 조건을 설정한다.
이 서브 커멘드로 조건을 변경하면, 이후에Hotkey커멘드로 hot key에 할당할 수 있었던 액션은, 그 조건에 일치하는 경우만 동작하게 된다.
조건의 자세한 것은 #Ifwin...지령의 항을 참조.
WinTitle, WinText 윈도우의 타이틀, 텍스트의 조건을 지정한다.
「Hotkey,IfWinActive」(와)과 같이 이 인수를 비워 실행하면, 「조건 없이 」로 설정된다.

ErrorLevel

IfWin..,계 서브 커멘드를 사용했을 경우, 설정에 성공하면0, 어떠한 문제가 발생했을 경우1(이)가 된다.

UseErrorLevel옵션을 사용했을 경우, 문제가 없으면0, 문제가 있었을 경우는 이하의 어떤 것인가가 된다.

1
Label인수로 지정된 라벨이 존재하지 않는다
2
KeyName파라미터로 지정된 키가 현재의 시스템으로 사용할 수 없는지, 원래 존재하지 않는다
3
「WheelUp & MButton」(와)과 같이, 콤비네이션 키의 프리픽스 키에 사용할 수 없는 키를 지정했다
4
AltTab(이)나ShiftAltTab에 단독의 키를 할당하려고 했다(이러한 기능에는,2개이상의 키로부터 되는 hot key를 할당할 필요가 있다)
5
설정되어 있지 않은 hot key의 설정을 갱신하려고 했다
6
hot key는 설정되어 있지만, 현재의 「IfWin...」조건하의 액션이 설정되어 있지 않을 때로 설정을 갱신하려고 했다
50
등록하려고 한 hot key가 다른 어플리케이션으로 사용되고 있어 등록할 수 없었다(Windows9x계만)
51
Windows9x계에서는 사용할 수 없는 hot key를 설정하려고 했다
98
설정할 수 있는 hot key수의 상한700개를 초과했다
99
빈메모리가 부족하고 처리에 실패했다

KeyName(와)과UseErrorLevel옵션만을 지정하는 것으로써, 그 hot key가 설정되어 있는지 어떤지를 조사할 수 있다.

Hotkey, ^!p,, UseErrorLevel
if ErrorLevel in 5,6
	MsgBox The hotkey does not exist or it has no variant for the current IfWin criteria.

Remarks

이 커멘드로 할당하는 것보다, hot key 라벨로 해서 정의하는 것이 효율이 좋다.
이 커멘드는, 스크립트로 동적으로 할당을 변경하고 싶은 경우 등에 마셔 사용한다.

하나의 라벨을 복수의 hot key에 할당할 수도 있다.
이 경우, %A_ThisHotkey%변수로 어느 hot key가 밀렸는지를 알 수 있다.

이 커멘드로 만들어진 hot key도, Suspend커멘드로 정지할 수 있다.

이 커멘드로 hot key를 등록·무효화했을 경우, 키보드 훅(이)나 마우스 훅(은)는 자동적으로 유효·무효가 된다.

이 커멘드로 hot key를 작성하면, 스크립트는 자동적으로 상주가 된다.


Related

#Ifwin..., Hotkey Symbols, #MaxThreadsBuffer, #MaxThreadsPerHotkey, Suspend, Threads, Gosub, Return, Menu, SetTimer


Example(s)

Hotkey, ^!z, MyLabel
return

MyLabel:
MsgBox You pressed %A_ThisHotkey%.
return

; Other examples:
Hotkey, RCtrl & RShift, AltTab ; Makes RCtrl & RShift operate like Alt-Tab.
Hotkey, #c, On
Hotkey, $+#c, Off
Hotkey, ^!a, , T5 ; Change the hotkey to allow 5 threads.

Hotkey, IfWinActive, ahk_class Notepad
Hotkey, ^!c, MyLabelForNotepad
0 Comments
댓글쓰기 폼