AutoHotKey(오토핫키) 설명서 #MaxHotkeysPerInterval

Posted by 발전소장
2014. 8. 13. 18:32 AutoHotKey/Commands

#MaxHotkeysPerInterval

지정 시간의 사이에 실행할 수 있는 최대의 hot key수를 설정(#HotkeyInterval(와)과 함께 사용)

#MaxHotkeysPerInterval Value

Parameters

인수명설명
Value hot key의 실행수의 상한을 지정(초기치는70)

Remarks

#HotkeyInterval(을)를 참조.

Related

#HotkeyInterval

Example(s)

#HotkeyInterval 2000 ; This is  the default value (milliseconds).
#MaxHotkeysPerInterval 50 ; This is the default value.


AutoHotKey(오토핫키) 설명서 #KeyHistory

Posted by 발전소장
2014. 8. 13. 18:31 AutoHotKey/Commands

#KeyHistory

KeyHistory(을)를 위해서 기록되는 조작의 최대수를 설정한다

#KeyHistory MaxEvents

Parameters

MaxEvents기록되는 조작의 최대수.
디폴트는40.
최대500까지 설정 가능.
「0」(을)를 설정하면, 조작 이력을 완전하게 무효화할 수 있다.

Remarks

눌러 인하 이벤트와 밀어 올려 이벤트를 각각 기록되므로, 실제로 기록되는 키 조작은 여기서 지정한 값의 반이 된다.
예를 들어,MaxEvents에 「50」(을)를 지정했을 경우,25문자 타이프 친다고 기록은 가득 찬다.

Related

Examples

#KeyHistory 0      ; Disable key history.
#KeyHistory 100  ; Store up to 100 events.


AutoHotKey(오토핫키) 설명서 #InstallMouseHook

Posted by 발전소장
2014. 8. 13. 18:30 AutoHotKey/Commands

#InstallMouseHook

무조건 마우스 훅을 유효하게 한다

#InstallMouseHook [force] 

Parameters

인수명설명
force 1.0.08이전으로는, 다른 스크립트가 훅을 사용하고 있었을 때에 경고가 표시되는 것을 억제하는 설정이 있었지만, 현재는 경고가 표시될 것은 없기 때문에 필요없다.

Remarks

마우스 훅을 사용하면,500KB(정도)만큼(키보드 훅과 동시에 사용하는 경우는,50KB(정도)만큼)메모리 소비가 증가해 시스템 전체의 퍼포먼스가 조금 저하한다.
그 때문에, 통상은 필요한 때 이외는 마우스 훅은 유효화 되지 않는다.

이 커멘드를 사용하면, 무조건 키보드 훅을 유효화할 수 있다.
이것에 의해,KeyHistory커멘드로 mouse button의 이력을 조사할 수 있다.

메인 윈도우의 메뉴나KeyHistory커멘드로, 훅이 유효하게 되어 있을까를 알 수 있다.
메인 윈도우의 메뉴나ListHotkeys커멘드로, 어느 hot key가 훅으로 동작하고 있을까를 알 수 있다.

이 커멘드를 사용하면, 스크립트는 무조건상주 상태(이)가 되어,ExitApp커멘드를 실행할 때까지 스크립트가 종료하지 않게 된다.

현재로서는,Windows9x계에서는 마우스 훅은 사용할 수 없다.

마우스 훅을 유효하게 하면, mouse button 조작외, 마우스 커서의 이동도AutoHotkey(을)를 통하고 나서 처리되게 된다.
이 때문에,CPU사용율이 높아지고 있을 때 등에 마우스의 응답이 나빠지는 경우가 있다.
Process, , Priority, High 」로서AutoHotkey의 프로세스의 우선도를 높이는 것으로, 이 상태를 완화할 수 있다.

Related

#InstallKeybdHook, #UseHook, Hotkey, #Persistent, KeyHistory

Example(s)

#InstallMouseHook
#InstallMouseHook force


AutoHotKey(오토핫키) 설명서 #InstallKeybdHook

Posted by 발전소장
2014. 8. 13. 18:29 AutoHotKey/Commands

#InstallKeybdHook

무조건 키보드 훅을 유효하게 한다

#InstallKeybdHook [force] 

Parameters

인수명설명
force 1.0.08이전으로는, 다른 스크립트가 훅을 사용하고 있었을 때에 경고가 표시되는 것을 억제하는 설정이 있었지만, 현재는 경고가 표시될 것은 없기 때문에 필요없다.

Remarks

키보드 훅을 사용하면,500KB(정도)만큼 메모리 소비가 증가해 시스템 전체의 퍼포먼스가 조금 저하한다.
그 때문에, 통상은 필요한 때 이외는 키보드 훅은 유효화 되지 않는다.

이 커멘드를 사용하면, 무조건 키보드 훅을 유효화할 수 있다.
이것에 의해,KeyHistory커멘드로 키 입력의 이력을 표시할 수 있게 되는 것 외에#HotkeyModifierTimeout의 설정에 관계없이 수식 키 상태 복원이 확실히 행해지도록 할 수 있다.

메인 윈도우의 메뉴나KeyHistory커멘드로, 훅이 유효하게 되어 있을까를 알 수 있다.
메인 윈도우의 메뉴나ListHotkeys커멘드로, 어느 hot key가 훅으로 동작하고 있을까를 알 수 있다.

이 커멘드를 사용하면, 스크립트는 무조건상주 상태(이)가 되어,ExitApp커멘드를 실행할 때까지 스크립트가 종료하지 않게 된다.

현재로서는,Windows9x계에서는 키보드 훅은 사용할 수 없다.

Related

#InstallMouseHook, #UseHook, Hotkey, #Persistent, KeyHistory

Example(s)

#InstallKeybdHook


AutoHotKey(오토핫키) 설명서 #Include / #IncludeAgain

Posted by 발전소장
2014. 8. 13. 18:27 AutoHotKey/Commands

#Include / #IncludeAgain

지정한 스크립트 파일의 내용을 그 위치에 짜넣는다

#Include FileName
#IncludeAgain FileName 

Parameters

인수명설명
FileName 짜넣는 파일명.
상대 패스로 기술했을 경우, 기준 디렉토리(스크립트 개시시는 커런트 디렉토리)(으)로부터 검색된다.
변수·환경 변수의 참조는 사용할 수 없지만,%A_ScriptDir%,%A_AppData%,%A_AppDataCommon%만일 수 있는은 예외적으로 사용할 수 있다.
인용부호로 둘러싸거나특정 문자를 이스케이프하거나 할 필요는 없다.

파일명의 전에 반각 스페이스에서 단락지어 「*i」라고 쓰면, 파일이 존재하지 않아도 에러로 하지 않고 그대로 실행하게 된다.

파일명 대신에 디렉토리 패스를 기술하면,#Include(이)나FileInstall그리고 사용되는 기준 디렉토리를 변경할 수 있다.
디렉토리 패스에는 변수·환경 변수의 참조는 사용할 수 없지만,%A_ScriptDir%만일 수 있는은 예외적으로 사용할 수 있다.
이 방법으로 기준 디렉토리를 변경해도, 스크립트 실행시의%A_WorkingDir%의 내용에는 영향은 없다.

Remarks

#Include / #IncludeAgain(은)는, 스크립트가 실행되기 전의 해석의 단계에서 실행된다.
스크립트가 실행될 때는, 마치#Include하지만 쓰여진 것에 지정된 스크립트 파일의 내용이 쓰여져 있는 것 같이 된다.

#Include(은)는, 벌써 한 번 짜넣어진 스크립트는 짜넣어지지 않다.
#IncludeAgain그럼, 벌써 짜넣어졌던 적이 있을까에 관계없이, 지정한 스크립트가 짜넣어진다.

함수 라이브러리기능을 이용하면,#Include(을)를 기술하지 않고 , 다른 파일에 기술된 함수를 호출할 수 있다.

ListLines등에서 표시되는 행 번호는, 편입을 실시하기 전의 것이 표시된다.

Example(s)

a=aaaa
#Include %A_ScriptDir%  ;여기에서 아래의#Include(이)나FileInstall의 기준 패스를 변경


#Include test.ahk

MsgBox,in main script

a=bbb
#Include test.ahk

MsgBox,in main script2

#IncludeAgain test.ahk
Loop,3
{
	a=%A_Index%
	#IncludeAgain test.ahk
}

;test.ahk
MsgBox,%a%


AutoHotKey(오토핫키) 설명서 #IfWinActive / #IfWinExist

Posted by 발전소장
2014. 8. 13. 18:25 AutoHotKey/Commands

#IfWinActive / #IfWinExist

hot key를 특정의 윈도우의 액티브/존재시만 유효하게 되도록(듯이) 설정한다

#IfWinActive [, WinTitle, WinText]
#IfWinExist [, WinTitle, WinText]
#IfWinNotActive [, WinTitle, WinText]
#IfWinNotExist [, WinTitle, WinText]

Parameters

인수명설명
WinTitle 윈도우 타이틀등의 조건을 지정.
윈도우 지정의 방법참조.
다만, 윈도우 타이틀과ahk_class,ahk_group, 그러한 복수 조건의 동시 지정만 유효.
ahk_id(와)과ahk_pid(은)는, 일단 기능하지만, 미리 알아 둘 수 없기 때문에 거의 의미가 없다.
「%VarName%」(와)과 같은 변수 참조는, 현재 사용할 수 없다.
다만, 장래의 확장을 위해서, 「%」기호는 「`%」(와)과 같이 이스케이프 해 두는 것.
WinText 윈도우에 포함되는 텍스트의 조건을 지정.
인수의 수가 늘려지기도 할 수 있으므로, 「,」(은)는 「`,」(와)과 같이 이스케이프 하는 것.

Remarks

이 지령이 기술된 부분에서(보다) 다음에 정의되는 hot key는, 기술된 조건에 일치하고 있을 때 마셔 유효하게 된다.
#IfWinActive그럼 지정 윈도우가 액티브때만,#IfWinExist그럼 지정 윈도우가 존재할 때 마셔,#IfWinNotActive그럼 지정 윈도우가 액티브하지 않을 때 마셔,#IfWinNotExist그럼 지정 윈도우가 존재하지 않을 때 마셔 유효하게 된다.

AltTabhot key(은)는 이러한 지령의 조건에 관계없이, 항상 유효하게 된다.

이러한 조건은, 마지막에 지정한 것 하나의 봐가 유효하게 된다.
「#IfWinActive」(와)과 같이 모든 인수를 생략 해 기술하면, 조건이 「조건 없음」이 된다.

조건 마다 같은 hot key에 다른 동작을 할당할 수 있다.

#IfWinActive ahk_class Notepad
^!c::MsgBox You pressed Control+Alt+C in Notepad.
#IfWinActive ahk_class WordPadClass
^!c::MsgBox You pressed Control+Alt+C in WordPad.
#IfWinActive
^!c::MsgBox You pressed Control+Alt+C in a window other than Notepad/WordPad.

「#IfWinActive ahk_class Notepad」와「#IfWinExist ahk_class Notepad」(와)과 같이, 복수의 동시에 성립 할 수 있는 조건에 액션을 설정해 두는 경우, 제일 최초로 설정된 조건부 액션이 우선된다.
일치하는 조건이 하나도 없는 경우, 「조건 없음」으로 설정된 액션이 실행된다.
「조건 없음」으로의 액션도 설정되어 있지 않은 경우, 그 키의 본래의 동작을 한다.(WindowsNT계만)

「Gosub,^!c」(와)과 같이 해 hot key 라벨에 직접 점프 하는 경우, 조건에 관계없이 스크립트의 제일 최초로 나타나는 hot key 라벨에 점프 한다.

스크립트 실행중에Hotkey커멘드를 사용하면, 스크립트의 최후로 지정되어 있던 조건하에서의 hot key 액션이 설정·변경된다.
「Hotkey,IfWinActive,ahk_class Notepad」(와)과 같이,IfWin...계 서브 커멘드로, 조건을 변경하거나 「조건 없음」으로 하거나 할 수 있다.

통상, 「a & b」(와)과 같은 콤비네이션 키를 지정해 있으면, 프리픽스 키(먼저 쓰여진 (분)편의 키)의 본래의 기능은 무효가 된다.
그러나, 그 키를 프리픽스로서 사용하는 콤비네이션 키가 모두 조건에 의해 무효가 되어 있을 때는, 그 키 본래의 동작을 한다.

IfWinActive및IfWinExist의 조건이 붙은 hot key 써브루틴이 실행될 때,LastFoundWindow(은)는 해당 윈도우로 설정된다.

Related

Hotkeys, Hotstrings, Suspend, Hotkey command, IfWinActive, IfWinExist, SetTitleMatchMode, DetectHiddenWindows

Examples

#IfWinActive ahk_class Notepad
^!a::MsgBox You pressed Ctrl-Alt-A while Notepad is active.  ; This hotkey will have no effect if pressed in other windows (and it will "pass through").
#c::MsgBox You pressed Win-C while Notepad is active.
::btw::This replacement text for "btw" will occur only in Notepad.
#IfWinActive
#c::MsgBox You pressed Win-C in a window other than Notepad.
#IfWinExist ahk_class Notepad
+#n::WinActivate
#IfWinExist
+#n::Run,notepad.exe


AutoHotKey(오토핫키) 설명서 #Hotstring

Posted by 발전소장
2014. 8. 13. 18:21 AutoHotKey/Commands

#Hotstring

핫 스트링의 옵션의 변경, 종료 문자의 지정

#Hotstring EndChars NewChars
#Hotstring NewOptions
#Hotstring NoMouse

Parameters

EndChars NewChars 그 스크립트내에서 사용하는 종료 문자를 설정한다.
스크립트내에서1회만 사용할 수 있어 스크립트 전체에 영향을 준다.
최대로100문자까지 지정할 수 있다.
NewOptions 옵션의 초기치를 변경한다.
이 지령은, 기술된 장소 이후에서만 유효하게 되어, 재차 변경할 수도 있다.
지정할 수 있는 옵션에 대해서는,핫 스트링의 옵션(을)를 참조.
NoMouse mouse button가 밀렸을 때에 감시 내용이 리셋트 되지 않게 한다.
스크립트내에서1회만 사용할 수 있어 스크립트 전체에 영향을 준다.

Related

Hotstrings

Example(s)

#Hotstring EndChars -()[]{}':;"/\,.?!`n `t
::btw::by the way
#Hotstring r c  ; All the below hotstrings will use "send raw" and will be case sensitive by default.
::al::airline
::CEO::Chief Executive Officer
#Hotstring c0 ; Make all hotstrings below this point case insensitive.


AutoHotKey(오토핫키) 설명서 #HotkeyModifierTimeout

Posted by 발전소장
2014. 8. 13. 18:19 AutoHotKey/Commands

#HotkeyModifierTimeout

키보드 훅 없이 hot key중에서Send커멘드를 사용했을 때에 수식 키 상태를 복원하지 않게 되는 타임 아웃 시간을 설정

#HotkeyModifierTimeout Value 

Parameters

인수명설명
Value 밀리 세컨드로 지정.
초기치는50.

Remarks

hot key중에서Send커멘드가 실행되었을 경우, 밀리고 있는 수식 키가 의사적으로 밀어 올려 상태로 되어 수식 키가 밀리지 않은 상태로 되고 나서 키스트로크(keystroke)가 송신된다.
키보드 훅을 사용하고 있지 않으면Send커멘드가 끝난 뒤에 수식 키가 아직 실제로 밀리고 있을까를 알 수 없기 때문에, 수식 키를 재차 밀린 상태에 되돌려야할 것인가 모른다.
거기서, 이 커멘드로 설정된 시간이 경과하고 있지 않으면 유저는 아직 수식 키를 누른 채로 있으면 간주, 수식 키를 의사적으로 재차 눌러 인하 상태로 한다.

이 값을 너무 크게 설정하면 , 유저가 벌써 수식 키를 떼어 놓고 있는데, 재차 눌러 인하 상태로 해 버려, 수식 키가 밀린 채로 상태가 되어 버리는 일이 있다.
이 상태가 되어 버렸을 경우, 실제로 수식 키를 한 번 누르는 것으로, 밀리지 않은 상태에 되돌릴 수 있다.

이 값이 작으면Send커멘드 실행시에 수식 키가 떼어 놓아진 상태가 되어 버리는 일이 있어, 수식 키를 누른 채로Send커멘드를 포함한 hot key를 여러 차례 실행할 수 없게 되어 버린다.

키보드 훅을 사용하고 있는 경우, 수식 키가 실제로 밀리고 있는지 어떤지를 취득 가능하기 때문에, 이 설정에 관계없이 정확하게 수식 키 상태가 복원된다.
NT계의 경우,#InstallKeybdHook지령으로 강제적으로 키보드 훅을 유효하게 할 수 있다.
9x계에서는,SetKeyDelay그리고 키의 입력 간격을 짧게 하는 것으로, 오동작을 줄일 수 있다.

Related

GetKeyState

Example(s)

#HotkeyModifierTimeout 200


AutoHotKey(오토핫키) 설명서 #HotkeyInterval

Posted by 발전소장
2014. 8. 13. 18:17 AutoHotKey/Commands

#HotkeyInterval

지정 시간의 사이에 실행할 수 있는 최대의 hot key수를 설정(#MaxHotkeysPerInterval(와)과 함께 사용)

#HotkeyInterval Value

Parameters

인수명설명
Value 시간의 길이를 밀리 세컨드로 지정

Remarks

본지령으로 지정한 기간의 사이에#MaxHotkeysPerInterval지령으로 지정한 회수 이상의 hot key 이벤트가 발생했을 경우, 경고 다이얼로그가 표시되어 스크립트가 정지한다.

디폴트 설정은 「2000」(2초).

이 기능에 의해, 무한 재귀 hot key 호출 등, hot key 이벤트가 실행계속 되어 버리는 불편을 탈출할 수 있다.
예를 들어, 「^c::Send,^c」라고 하는 정의를 했을 경우,Ctrl+C하지만 밀리면Ctrl+C(을)를 송신하는 써브루틴이 실행되어 그Ctrl+C에 반응해 재차 사브리틴이 실행되고 엔들레스 루프에 빠져 버린다.
여기서#HotkeyInterval,#MaxHotkeysPerInterval의 설정이 적절하면, 지정 회수의 hot key가 실행된 시점에서 경고가 표시되어 스크립트가 정지한다.

「q::Send,d」(와)과 같은 키 교체를 실시하고 있어 키를 누르고 있을 뿐으로 했을 때의 키 반복 간격을 짧게 하고 있는 경우, 키 반복을 계속했을 때에 경고가 표시되어 버리는 경우가 있다.
「#MaxHotkeysPerInterval 70」정도로 해 두면, 컨트롤 패널의 키보드 설정으로 「표시의 간격」을 최고 속도로 하고 있어도 문제 없을 것이다.

Related

#MaxHotkeysPerInterval

Example(s)

#HotkeyInterval 2000 ; This is  the default value (milliseconds).
#MaxHotkeysPerInterval 50 ; This is the default value.


AutoHotKey(오토핫키) 설명서 #EscapeChar

Posted by 발전소장
2014. 8. 13. 18:16 AutoHotKey/Commands

#EscapeChar

스크립트의 이스케이프 문자(디폴트는 「`」)(을)를 변경

#EscapeChar NewChar

Parameters

인수명설명
NewChar 1아르바이트의 문자를 지정

Remarks

이스케이프 문자는, 다음에 오는 문자와 아울러 특별한 문자로서 해석된다.

자세한 것은,이스케이프 문자의 해설을 참조.

Related

별로 사용하지 않지만, 이하의 지령도 있다

#DerefChar # ; 변수 전개로 변수명을 둘러싸는 문자(디폴트는 「%」)(을)를 변경
#Delimiter / ; 커멘드의 인수를 단락짓는 문자(디폴트는 「,」)(을)를 변경

Example(s)

#EscapeChar \ ; Change it to be the same as AutoIt2's.