AutoHotKey(오토핫키) 설명서 If var is [not] type

Posted by 발전소장
2014. 8. 14. 01:19 AutoHotKey/Commands

If var is [not] type

지정한 변수에 격납되고 있는 데이터가 특정의 형태인지 어떤지로 분기

if var is type
if var is not type

Parameters

인수명설명
var 변수명
type 변수의 형명(Remarks참조)

Remarks

Supported Types
integer 소수점을 포함하지 않는다10진수치나, 「0x」(으)로 시작된다16진수치.
전후에 반각 스페이스를 포함하는 것 안개+부호로 시작되는 것도 가능.
float 소수점을 포함한다10진수치.
전후에 반각 스페이스를 포함하는 것이나,+부호로 시작되는 것, 소수점으로부터 시작되는 것도 가능.
number integer인가float에 해당하는 것
digit 0...9만으로 구성되는 숫자.전후의 공백도 용서된다.
xdigit 0...9a...f(으)로 구성된다16진수치.대문자에서도 소문자라도 좋다.전후의 공백도 용서된다.
alpha a...zA...Z(으)로부터 되는 알파벳열.
upper A...Z(으)로부터 되는 대문자 알파벳열.
lower a...z(으)로부터 되는 소문자 알파벳열.
alnum a...zA...z0...9의 영숫자열.
space 반각 스페이스인가Tab문자, 개행(CR(이)나LF)등의 공백 문자만
time YYYYMMDDHH24MISS의 타임 스탬프 형식으로서 올바르다14자리수까지의 숫자열.
「2004」(와)과 같은 도중까지의 값으로도 가능.
MM의 부분이01..12의 범위가 아닌 등 일자 시각으로서 잘못하고 있는 것은 불가.
타임 스탬프로 간주해지는 범위는,1601해부터9999해까지.

time이외의 형식은, 내용이 하늘에서도 일치로 간주해진다.

Related

%A_Year%, SetFormat, FileGetTime, IfEqual, StringLen, IfInString, StringUpper, EnvAdd, Blocks, Else

Example(s)

if var is float
	MsgBox, %var% is a floating point number.
else if var is integer
	MsgBox, %var% is an integer.
if var is time
	MsgBox, %var% is also a valid date-time.


AutoHotKey(오토핫키) 설명서 IfInString / IfNotInString

Posted by 발전소장
2014. 8. 14. 01:18 AutoHotKey/Commands

IfInString / IfNotInString

변수내로 지정 문자열이 있을지로 분기

IfInString, var, SearchString 
IfNotInString, var, SearchString 

Parameters

인수명설명
var 변수명
SearchString 찾는 문자열

Remarks

공백 문자를 찾고 싶을 때는,%A_Space%(이)나%A_Tab%(을)를 사용하면 좋다.

이 커멘드의 후에는, 「,」(으)로 단락지어 조건에 일치했을 때에 실행시키고 싶은 커멘드를 기술할 수 있다.
이하의3개는 모두 올바르다.

IfInString, MyVar, abc
	Gosub, Process1
IfInString, MyVar, abc, Gosub, Process1
IfInString, MyVar, abc,{
	Gosub, Process1
}

통상은 대문자 소문자를 구별하지 않는다.
StringCaseSense그리고 설정을 변경할 수 있다.

Related

StringCaseSense, IfEqual, Blocks, Else, if var is type

Example(s)

Haystack = abcdefghijklmnopqrs
Needle = abc
IfInString, Haystack, %Needle%
{
	MsgBox, The string was found.
	return
}
else
	Sleep, 1


AutoHotKey(오토핫키) 설명서 If var [not] in values / If var [not] contains values

Posted by 발전소장
2014. 8. 14. 01:18 AutoHotKey/Commands

If var [not] in values / If var [not] contains values

변수의 값이 열거했지만 우리 어떤 것일까하고 같다/포함할지로 분기

if Var in MatchList
if Var not in MatchList
if Var contains MatchList
if Var not contains MatchList

Parameters

인수명설명
var 변수명
MatchList 후보 일람.
문자열을 「,」(으)로 단락지어 열거.
모두가 하나의 당겨 수라고 해 다루어진다.
콤마를 나타내려면 , 「,,」라고 콤마를2개 계속하고 쓴다.
후보에 공문자열을 지정하고 싶은 경우, 「,value1,value2」라고 리스트의 최초를 콤마로 한다.
콤마의 전후의 공백은 제거되지 않는다.

Remarks

[not] in그럼,Var하지만MatchList의 어떤 것일까하고 완전하게 일치할지로 판정한다.
[not] contains그럼,MatchList의 안에Var에 완전하게 포함되는 문자열이 있을지로 판정한다.

모든 비교는 문자열적으로 일치할지로 행해진다
StringCaseSense그리고 대문자 소문자의 차이를 고려할지를 설정할 수 있다.

Related

IfEqual/Greater/Less, if var in MatchList, if var is type, IfInString, StringCaseSense, EnvAdd, Blocks, Else

Example(s)

if var in exe,bat,com
	MsgBox The file extension is an executable type.

if var in 1,2,3,5,7,11 ; Avoid spaces in list.
	MsgBox, %var% is a small prime number.

if var in %MyItemList%
	MsgBox %var% is in the list.

InputBox, UserInput, Enter YES or NO
if UserInput not in yes,no
	MsgBox Your input is not valid.
WinGetTitle, active_title, A 
if active_title not in Microsoft,- Message,Outlook ; Note no spaces between commas. 
{ 
     Send,!{F4}
}


AutoHotKey(오토핫키) 설명서 If(식)

Posted by 발전소장
2014. 8. 14. 01:17 AutoHotKey/Commands

If(식)

식의 계산 결과의 진위로 조건 분기를 실시한다

If(Expression)

Parameters

Expression식.식의 설명참조.

Remarks

식의 내용이 진위치로서 판단되어 진(True)인 경우, 다음의 행의 커멘드 혹은블록하지만 실행된다.
다음의 행의 커멘드 혹은블록의 후에Else에 이어 커멘드 혹은블록하지만 있으면, 의식(False)에서 만났을 경우에 실행된다.

Related

식의 설명, Var:=식, if var in/contains MatchList, if var between, IfInString, Blocks, Else

Example(s)

if (A_Index > 100 or Done)
	return

if (A_TickCount - StartTime > 2*MaxTime + 100)
{
	MsgBox Too much time has passed.
	ExitApp
}

if (Color = "Blue" or Color = "White")
{
	MsgBox The color is one of the allowed values.
	ExitApp
}
else if (Color = "Silver")
{
	MsgBox Silver is not an allowed color.
	return
}
else
{
	MsgBox This color is not recognized.
	ExitApp
}


AutoHotKey(오토핫키) 설명서 IfExist / IfNotExist

Posted by 발전소장
2014. 8. 14. 01:17 AutoHotKey/Commands

IfExist / IfNotExist

지정한 파일이나 디렉토리가 존재할지로 분기

IfExist, FilePattern
IfNotExist, FilePattern

Parameters

인수명설명
FilePattern 패스나 파일명, 와일드 카드.
상대 패스로 기술되었을 경우,%A_WorkingDir%(으)로부터 검색된다.

Related

Blocks, Else, File-loops

Example(s)

IfExist, D:\
	MsgBox, The drive exists.
IfExist, D:\Docs\*.txt
	MsgBox, At least one .txt file exists.
IfNotExist, C:\Temp\FlagFile.txt
	MsgBox, The target file does not exist.


AutoHotKey(오토핫키) 설명서 If (변수의 비교)

Posted by 발전소장
2014. 8. 14. 01:17 AutoHotKey/Commands

If (변수의 비교)

변수와 수치를 비교해 조건 분기를 실시한다.

if var = value
if var <> value
if var > value
if var >= value
if var < value
if var <= value
IfEqual,var,value
IfNotEqual,var,value
IfGreater,var,value
IfGreaterOrEqual,var,value
IfLess,var,value
IfLessOrEqual,var,value

Parameters

인수명설명
var 변수명
value 수치 혹은 문자열.
변수끼리를 비교하고 싶은 경우, 「%var2%」(와)과 같이 변수 참조의 형태로 할 필요가 있다.
생략 하면, 하늘의 문자열을 지정한 것이 된다.

Remarks

var의 내용과value의 값이 함께 수치의 경우는, 수치로서 비교된다.
언젠가 혹은 양쪽 모두가 문자열의 경우는, 문자열로서 비교된다.
문자열로서의 비교에서도, 문자 코드로의 순서에 의해 대소를 비교할 수 있다.

IfEqual(와)과 같은 커멘드명의 형식의 경우, 더욱 콤마로 단락지어 조건에 일치했을 경우에 실행하는 커멘드를 기술할 수 있다.

Related

IF (식), StringCaseSense, IfInString, Blocks, Else

Example(s)

if counter >= 1
	Sleep, 10

if MyVar = %MyVar2%
	MsgBox The contents of MyVar and MyVar2 are identical.
else if MyVar =
{
	MsgBox, 4,, MyVar is empty/blank. Continue?
	IfMsgBox, No, Return
}
else if MyVar <> ,
	MsgBox The value in MyVar is not a comma.
else
	MsgBox The value in MyVar is a comma.

if Done
	MsgBox The variable Done is neither empty nor zero.


AutoHotKey(오토핫키) 설명서 If var [not] between L and U

Posted by 발전소장
2014. 8. 14. 01:16 AutoHotKey/Commands

If var [not] between L and U

변수의 값이 상한과 하한의 사이에 있을지로 분기

if Var between LowerBound and UpperBound
if Var not between LowerBound and UpperBound

Parameters

인수명설명
var 변수명
LowerBound 하한
UpperBound 상한

Remarks

3개의 당겨 수가 모두 수치의 경우, 비교는 수치로서 행해진다.
문자열이 포함되는 경우, 문자 코드순서의 순위로 비교된다.
문자열로서 비교하는 경우,StringCaseSense그리고 대문자 소문자의 차이를 고려할지를 설정할 수 있다.

Related

IfEqual/Greater/Less, if var in MatchList, if var is type, IfInString, StringCaseSense, EnvAdd, Blocks, Else

Example(s)

if var between 1 and 5
	MsgBox, %var% is in the range 1 to 5, inclusive.

if var not between 0.0 and 1.0
	MsgBox %var% is not in the range 0.0 to 1.0, inclusive.

if var between blue and red
	MsgBox %var% is alphabetically between blue and red.

LowerLimit = 1
UpperLimit = 10
InputBox, UserInput, Enter a number between %LowerLimit% and %UpperLimit%
if UserInput not between %LowerLimit% and %UpperLimit%
	MsgBox Your input is not within the valid range.


AutoHotKey(오토핫키) 설명서 Hotstring

Posted by 발전소장
2014. 8. 14. 01:14 AutoHotKey/Commands

Hotstring

개요

핫 스트링은, 유저가 특정의 문자열을 타이프 쳤을 때에 액션을 발생 당하는 기능이다.
입력된 문자열을 다른 문자열을 입력하는 자동 치환형과 hot key와 같이 스크립트를 실행하는 타입이 있다.

NT계 전용.

자동 치환형

::btw::by the way

상기와 같이 설정하면, 「btw」라고 하는 단어를 입력했을 때에, 그것이BackSpace그리고 삭제된 후, 대신에 「by the way」라고 입력된다.
치환 후의 텍스트의 지정은Send커멘드와 같이 특수 키등도 지정할 수 있지만,(현재)변수를 전개하는 것은 할 수 없다.
치환 후의 텍스트에2아르바이트 문자를 사용할 수 없기 때문에, 스크립트 실행형으로 클립보드를 경유해 붙이는 등 방법을 취할 필요가 있다.

이 기능은 주로 영어권으로의 텍스트 입력의 절력화를 상정하고 있다고 생각되어 일본어 환경에서는 용도가 한정된다.
거기서, 이 페이지에서는, 스크립트 실행형에 관계가 있는 부분을 주로 설명한다.

스크립트 실행형

::kita-::
Clipboard=렝━━━━━━(刪_)━━━━━━ !!!!!
Send,^v
Return

상기와 같이 설정하면, 「kita-」라고 타이프 쳤을 때에, 「kita-」(이)가BackSpace그리고 삭제된 후,AA하지만 붙일 수 있다. 타이프 친 텍스트가 삭제되지 않게 하려면 , 후술의 옵션으로 「B0」(을)를 지정한다.

종료 문자

::btw::by the way」라고 설정했을 경우, 단지 「btw」라고 입력하는 것 만으로는 핫 스트링은 발동하지 않는다.
단어의 후에 종료 문자가 입력될 필요가 있다.
디폴트의 종료 문자는, 「-()[]{}':;"/\,.?!{Enter}{Space}{Tab}」이다.

#Hotstring EndChars -()[]{}:;'"/\,.?!`n `t

상기와 같이 기술하면, 종료 문자를 변경할 수 있다.
이 지령은 다른 옵션과 달리, 스크립트중에서1회만 유효하고, 모든 핫 스트링에 영향을 준다.

후술 하는 옵션으로 「*」(을)를 지정하면, 핫 스트링 마다 종료 문자를 필요로 하지 않게 설정할 수도 있다.

자동 치환형의 경우, 종료 문자는 치환 후의 텍스트가 입력된 뒤에 입력된다.(Enter키 이외)
예를 들면, 「btw/」라고 입력하면, 「by the way/」(이)가 된다.
이것은 「O」옵션으로 무효화할 수 있다.

스크립트 실행형의 경우, 종료 문자의 입력은 납치되어 없었던 일이 되어 버린다.
스크립트 실행형의 경우, 편입 변수 「A_EndChar」(으)로 입력된 종료 문자를 알 수 있다.

대문자 소문자의 차이

통상은 대문자 소문자의 차이를 무시해 발동한다.
또한, 치환 후의 텍스트가 알파벳열의 경우, 「btw」→「by the way」, 「Btw」→「By the way」, 「BTW」→「BY THE WAY」(와)과 같이 치환된다.
이 동작은, 「C1」옵션으로 무효화할 수 있다.

대문자 소문자를 구별시키고 싶은 경우는, 「C」옵션을 사용한다.

::abc::」와「::ABC::」(와)과 같은 대문자 소문자 이외가 같은 핫 스트링 라벨은 존재할 수 없다.
: :abc::」(와)과 같이, 옵션을 지정하는 부분에 반각 스페이스를 들어갈 수 있으면, 다른 라벨명으로 인식되게 되어, 대문자 소문자 이외가 같은 핫 스트링을 설정할 수 있다.

옵션

옵션의 지정의 방법에는2가지 있다.
복수의 옵션을 지정할 때는, 스페이스에서 단락지어도 단락짓지 않아도 좋다.

#Hotstring지령

#Hotstring C

상기와 같이 기술하면, 그 이후에 정의되는 핫 스트링의 설정을 변경할 수 있다.

개별 지정

:*:btw::by the way

개별의 핫 스트링의 설정을 지정하려면 , 최초의 「:」의 사이에 옵션을 기술한다.

옵션 일람

SI
자동 치환으로,Input모드를 사용해 자동 입력을 실시한다.(디폴트)
각 모드의 자세한 것은SendMode커멘드의 설명을 참조.
SP
자동 치환으로,Play모드를 사용해 자동 입력을 실시한다.
SE
자동 치환으로,Event모드를 사용해 자동 입력을 실시한다.
B0
입력된 텍스트를BackSpace그리고 삭제하지 않는다.
덧붙여(1.0.17현재)종료 문자의 문자도 삭제되지 않고, 더욱 자동 입력의 후에 종료 문자가 입력되어 버린다.
B
B0옵션을 해제·무효화한다.
Z
발동한 시점에서, 키 입력의 기억 버퍼를 클리어 한다.
이 옵션을 사용하지 않는 경우, 예를 들어 「B0」 「*」 「?」옵션포함의 「uma」라고 하는 핫 스트링이 발동한 직후는, 기억 버퍼에 「uma」(이)가 들어가 있기 위해, 계속해 「ibou」라고 입력하면, 「umaibou」라고 하는 핫 스트링이 발동해 버린다.
Z0
Z옵션을 해제·무효화한다.
C
대문자 소문자를 구별한다.
C1
대문자 소문자는 무시하면서, 입력 내용의 대문자 소문자의 따로 따라 자동 입력되는 내용의 대문자 소문자를 변화시키는 기능을 무효화한다.
Kn
키의 입력 간격을 지정한다.
BackSpace에 의한 삭제나 자동 치환에서는,1키 마다 여기서 지정한 밀리 세컨드만 사이를 비워 입력된다.
디폴트는 「0」(으)로, 이 경우 「Sleep 0」(을)를 실행했을 때와 같이, 다른 프로세스에 의한 세치기를 허락한다.
「-1」(을)를 지정하면, 세치기를 허락하지 않고 최고의 속도로 입력된다.
O
자동 치환으로, 마지막에 종료 문자를 입력하지 않는다
P
스크립트 실행형에 있어서의세치기 우선도(을)를 지정한다
R
치환 후의 텍스트로 「{Enter}」(와)과 같은 특수 키의 해석을 실시하지 않고, 기술되고 있는 텍스트를 그대로 입력한다.
*
종료 문자 없이 발동하도록(듯이) 한다.
?
단어의 도중에 있어도 발동하게 된다.
통상은, 알파벳 키를 타이프 친 직후에 일치하는 입력이 있어도 무시된다.
C0,O0,R0,*0,?0
각 옵션의 지정을 무효화·해제한다

비고

BackSpace에 의한 다시 놓아

핫 스트링의 감시는,BackSpace에 의한 수정을 고려한다.
예를 들면, 「br{BackSpace}tw」(은)는 「btw」에 매치한다.
다른 비문자 키는 무시되어 감시 내용은 리셋트 된다.

마우스 클릭을 했을 경우도, 감시 내용은 리셋트 된다.

텍스트 입력란 이외로의 동작

핫 스트링은 텍스트를 입력할 수 없는 장소에서도 완전히와 같이 동작한다.
자동 입력되는 키에 의해서 예기치 못한 동작이 되는 경우도 있으므로 주의가 필요.

IME사용시의 동작

핫 스트링은IME하지만ON때에도 유효하다.
IME하지만ON때에 텍스트가 자동 입력되면, 「btw」→「by(이)라고 원y」와 같이 히라가나에 변환되어 이상해져 버린다.

또, 「kita-」(와)과 같은 모음을 포함한 핫 스트링에서는, 「왔다―」(와)과 같이 미확정 문자열의 문자수가 줄어 들어 버리기 위해,BackSpace에 의한 자동 삭제로 여분으로 삭제를 해 버린다.
예를 들면,IME그리고 「주먹밥」을 확정하고, 다음에 「왔다―」(을)를 입력했을 경우,2문자 불필요하게 삭제되어 「도깨비렝━(刪_)━!!」가 되어 버린다.
이것을 회피하려면 , 「kt-」(와)과 같이 모음을 포함하지 않는 핫 스트링에 할당하면 좋다.
또,IME의 설정에 따라서는, 「Kita-」(와)과 같이Shift(을)를 누르면서 영문자를 입력하면, 알파벳 상태로 입력된다.
이 경우, 타이프 친 문자수와BackSpace그리고 삭제해야 할 문자수는 일치할 것이다.
따라서, 「Kita-」(와)과 같이 핫 스트링을 대문자로 치기 시작하도록 하면, 불필요한 문자까지 삭제되어 버리는 것은 회피할 수 있다.
잘못해 「왔다―」라고 입력하고 있을 때 발동해 버리는 것을 피하고 싶으면, 「:C:Kita-::」(와)과 같이 「C」옵션을 붙이고, 대문자 소문자가 일치하지 않을 때는 발동하지 않게 설정하면 된다.

문자수의 상한

핫 스트링으로서 사용할 수 있는 문자수의 상한은40문자.
치환 후의 문자열은1행의 길이의 상한이다16,383까지 가능.

복수 매치시의 우선도

입력이 복수의 핫 스트링에 매치하는 경우, 먼저 지정하는 것이 우선된다.

:?:btw::by the way
::abtw::aaaaa

위의 예에서는, 「abtw」라고 입력했을 때 「btw」의 부분이 「by the way」에 치환된다.


AutoHotKey(오토핫키) 설명서 Hotkeys

Posted by 발전소장
2014. 8. 14. 01:12 AutoHotKey/Commands

Hotkeys

hot key는 「::」(코론2개)(을)를 따른 써브루틴 라벨로 해서 기술된다.
hot key가 입력되면 해당 라벨의 다음의 행에 처리가 옮겨, 최초로return인가exit하지만 실행될 때까지가 처리된다.

#y::
  WinActivate, Untitled - Notepad
  return

hot key에 할당하는 동작이1커멘드 뿐이라면, 「::」(코론2개)의 직후에 커멘드를 기술하는 것으로,1행으로 끝마칠 수 있다.return(은)는 불요.

#y::WinActivate, Untitled - Notepad

(비고) 프로그램은의사 multi-thread(이)가 되어 있다.
hot key 이벤트의 실행 도중에, 다른 hot key 이벤트가 실행되는 일도 가능.

수식 심볼

이하의 기호로 수식 키등을 지정할 수 있다.
복수의 심볼을 동시에 지정할 때는, 「!+」(와)과 같이 사이에 아무것도 열지 않고 연속해 기술한다.

+ Shift
^ Control
! Alt
# Win (미논)
< 왼쪽의 모디파이아키를 사용(NT계 전용)
례: <!a:: 좌Alt+A
> 오른쪽의 모디파이아키를 사용(NT계 전용)
례: >+<^a:: 좌Ctrl+우Shift+A
<^>! AltGr(일부의 나라의 키보드 레이아웃에 존재)
* 임의의 수식 키를 나타내는 와일드 카드(NT계 전용)
례1: *a:: Ctrl/Alt/Shift/Win상태에 관계없이,A키가 밀리면 발동
례2: *+a:: Ctrl/Alt/Win상태에 관계없이,Shift키가 밀린 상태로A키가 밀리면 발동
~ 이벤트를 빼앗지 않고, 그대로 시스템에 통한다.(NT계 전용)
례: ~*a::SoundPlay,D:\AutoHotkey\typesound.wav A키가 밀렸을 때에 사운드를 울린다.
(비고)Alt+Tab대체계 커멘드하지만 할당할 수 있었을 경우, 이 지정에 관계없이 입력은 납치된다.
$ RegisterHotkey()(이)가 아니고, 강제적으로 키보드 훅으로 이벤트를 취득한다.(NT계 전용)
써브루틴내에서 그 hot key 자신을 송신하는 경우,RegisterHotkey()그럼 hot key 이벤트가 재귀적으로 불려 가 버린다.
#UseHook지령을 사용하면,$(을)를 생략 할 수 있다.

사용할 수 있는 키명에 대해서는,Key List(을)를 참조

키 라벨의 사양

hot key 라벨은 통상의 라벨과 같이Gosub(이)나Goto그리고 이동할 수도 있다.
또, 아래 예의 같게, 복수의 hot key에 같은 써브루틴을 할당하는 일도 가능.

~*a::
~*b::
~*c::
SoundPlay,D:\AutoHotkey\typesound.wav
return

키의 무효화

동작으로서return문장만을 할당하면, 키를 무효화할 수도 있다.

RWIN::return

hot key를 스크립트의 실행중에 등록하거나 무효화/유효화하거나 하려면 ,Hotkey커멘드를 사용한다.

NT계 전용의 기능

Uphot key

키명의 뒤에 반각 스페이스에 이어 「Up」라고 붙이면, 키를 놓았을 때에 발동하는 hot key를 설정할 수 있다.(례:「a up」 「LShift up」)

Up없음의 hot key와 함께 설정하는 일도 가능.
Up없음의 hot key를 설정하고 있지 않는 경우에서도, 눌러 인하 이벤트는 납치된다.
예를 들어, 「a up::Send b」라고 하면,A키를 눌러 내렸을 때에는 아무것도 일어나지 않게 된다.
「~a::return」(을)를 모두 설정해 두면,A키가 눌러 내릴 수 있었을 때에는 보통으로A키가 밀렸을 때의 동작을 하게 된다.

밀어 올려 이벤트는, 「~」의 유무에 관계없이, 납치되지 않고 시스템에 통지된다.
예를 들어, 「LShift Up::return」(와)과 같이 해도,LShift키를 떼어 놓을 수 없게 할 수 없다.

콤비네이션 키

&」(을)를 사용하는 것으로,2개의 임의의 키(죠이스틱 이외)의 편성을 hot key로 지정하는 것이 가능.
3개이상의 키를 지정하거나+^!#그리고 수식 키를 추가하거나는 할 수 없다.
첫째로 지정한 키가 수식 키가 되어, 첫째의 키를 누르면서 둘째의 키를 누르면 발동한다.
첫째의 키를 누르고, hot key를 발동시키지 않고 떼어 놓으면, 첫째의 키 단독에 할당할 수 있었던 써브루틴이 실행된다.
첫째의 키 자체의 원래의 기능은 무효화된다.

Numpad0 & Numpad1::AltTab
Numpad0 & Numpad2::ShiftAltTab
Numpad0::Run, calc.exe

첫째의 키에 치르다(~)(을)를 붙이면, 그 키는 무효화되지 않고, 보통으로 입력된다.
하나에 붙여 두면, 첫째의 키가 같을 다른 hot key에서는 지정되어 있지 않아도, 그 키는 무효화되지 않게 된다.

~RButton & LButton::MsgBox,오른쪽 클릭하면서 왼쪽 클릭했다
RButton & WheelUp::MsgBox,오른쪽 클릭하면서 휠을 위에 돌렸다

상기예에서는, 오른쪽 클릭하면서 왼쪽 클릭하거나 휠을 위에 돌리거나 한다고 메세지가 나오지만, 오른쪽 클릭은 보통으로 액티브 윈도우에 보내진다

AltTab/ShiftAltTab/AltTabMenu/AltTabAndMenu/AltTabMenuDismiss

이러한 커멘드는, hot key에 직접 할당하는 것 마셔 가능한 특별한 커멘드.
보통으로 「Send,!{Tab}」라고 하면, 써브루틴이 끝날 때 마다Alt+Tab의 화면이 사라져 버려, 온전히 동작하지 않지만,AltTab/ShiftAltTab(을)를 할당하면, 수식 키를 떼어 놓을 때까지 화면이 사라지지 않게 된다.
또,AltTabMenu(을)를 사용하면,Alt+Tab화면의 표시의 유무를 교체된다.
AltTabAndMenu그리고 강제적으로 표시,AltTabMenuDismiss그리고 표시되고 있으면 소거라고 하는 동작도 할당할 수 있다.
또,Esc키가 밀리면, 선택된 윈도우로 전환하지 않고 표시를 종료할 수 있다.
수식 키가 없는 단독 키에AltTab/ShiftAltTab(을)를 할당했을 경우, 그대로는 아무것도 일어나지 않고,AltTabMenu그리고Alt+Tab의 화면을 표시하고 있는 동안만, 변환 조작을 할당할 수 있다.
덧붙여 수식 키는 좌우 어느 쪽인지를 지정해야 한다.「<+a」(와)과 같이 수식 심볼을 사용하는지, 「LShift & a」(와)과 같이 콤비네이션 키로 지정한다.

  LAlt & WheelDown::AltTab
  LAlt & WheelUp::ShiftAltTab

Alt+휠로 윈도우 변환

  MButton::AltTabMenu
  WheelDown::AltTab
  WheelUp::ShiftAltTab

중앙 클릭으로 변환 화면을 표시해, 휠로 선택, 다시 중앙 클릭하면 변환 화면이 사라져 전환이 실행된다.

Lock계 키의ON/OFF

SetNumlockState등의 커멘드로,NumLock키등의ON/OFF상태를 고정할 수 있다.

SetNumlockState, AlwaysOn

Windows표준 hot key

Win+E(이)나Win+R등의Windows표준 hot key도 동작을 덧쓰기하거나 무효화하거나 할 수 있다.
자세한 것은override page참조

숫자 패드와NumLock

숫자 패드의 각 키는NumLock상태에 의해서2대로의 hot key를 할당할 수 있다.
NumLock상태에 관계없이1개의 동작을 할당하고 싶은 경우는, 다음과 같이 한다.

NumpadEnd::
Numpad1::
MsgBox, This hotkey is launched regardless of whether Numlock is on.
return

Input커멘드

Input커멘드로 일련의 키스트로크(keystroke)를 받는 것으로,2스트로크 키나 단축 입력등의 기능을 실현할 수 있다.

^c::
    Input,InputChar,C I L1 T2,{Esc},x,s
    if ErrorLevel=Match
    {
        if InputChar=x
            Send,!{F4}
        if InputChar=s
            Send,^s
    }
    return


AutoHotKey(오토핫키) 설명서 Hotkey

Posted by 발전소장
2014. 8. 14. 01:11 AutoHotKey/Commands

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