본문 바로가기

오토핫키

오토핫키


AutoHotKey Tutorial

 

안녕하세요?
간간히 들르는 Michael입니다.
여기서 꽤 오래 전에 AutoHotKey라는 매크로 툴을 알게 되었는데,
그동안 그냥 그저그런 프로그램이려니 하고 관심도 없다가,
오늘 받아서 잠깐 보니까, 생각보다 강력하고 유용하게 쓸 수 있는 툴인 것 같더군요.
Getting Started Tutorial을 보다가 여러분들도 한 번 사용해 보시라고,
한글로 번역 좀 해봤습니다.
후다닥 번역하고 검토 한 번 안했고, 반말로 썼습니다. 이해해 주시지요.
세 번 정도에 나누어서 올리겠습니다. 나머지 두 부분은 반응 봐서... ^^;
===================================================================================
Getting Started Tutorial
매크로 스크립트랑 핫키 만드는 데 도움 좀 되라고 만든 문서다.

목차
•        스크립트 만들기
•        문서나 프로그램 실행시키기
•        키스트로크나 마우스 클릭 보내기
•        윈도우들 활성화시키고, 관리하기
•        사용자로부터 메시지박스, 인풋박스 등의 입력 받기
•        변수와 클립보드 사용하기
•        여러개의 액션을 계속 반복하기
•        파일과 폴더 관리하기
•        다른 기능들


스크립트 만들기
스크립트는 오토핫키 프로그램에 의해 실행되는 명령들이 들어있는 단순한 텍스트파일 형태로 이루어진다.
핫키나 핫스트링도 들어있을 수 있다.
핫키나 핫스트링이 들어있지 않은 경우 그냥 그 명령들이 순서대로 실행된다.

새 스크립트를 만들려면:
1.        윈도우즈 탐색기 등을 이용해 원하는 폴더로 이동한다.
2.        메뉴나 마우스 오른쪽 버튼을 이용해 “새로 만들기 >> AutoHotKey Script”를 한다.
          (그냥 텍스트 파일을 만들어도 된다.)
3.        뭘 만들든지 확장자명만 .ahk로 만들면 된다. 예를들어 Test.ahk
4.        파일이름 위에서 오른쪽 클릭하고 “Edit Script” 한다.
5.        거기다 이렇게 한 번 써봐라.
          #space::Run www.kbdmania.net

#는 윈키를 뜻한다. 그러니까 #space는 윈키 누른 상태에서 스페이스바 친다는 얘기고,
윈키+스페이스 칠 때마다 :: 뒤에 나오는 게 실행된다.
위 예제의 경우에는 키보드매니아 사이트가 열리는 거다. 한 번 해보자.
1.        아까 만든 파일 저장하고 닫는다.
2.        탐색기같은 데서 그 파일을 더블클릭하면 실행되고, 트레이에 아이콘이 나타난다.
          (역주: 그 스크립트의 아이콘이 트레이에 뜨고,
                 그 안에 지정되어 있는 핫키들을 받을 준비를 하고 있는 거다.)
3.        윈키+스페이스 누르면 브라우저에 키보드매니아 사이트가 열릴 거다.
4.        그 스크립트를 끝내거나 고치고 싶으면 트레이 아이콘을 오른쪽 클릭해라.
참고: 여러개의 스크립트가 동시에 돌아갈 수도 있고, 각각의 트레이 아이콘이 생긴다.


문서나 프로그램 실행시키기
Run 명령어는 프로그램, 문서, 인터넷 주소, 단축키 등을 실행하는 데 사용된다.
예를 들면:
Run, Notepad
Run, C:\My Documents\Address List.doc
Run, C:\My Documents\My Shortcut.lnk
Run, www.yahoo.com
Run, mailto:someone@somedomain.com

핫키 레이블을 앞에 붙이면, 그 핫키로 위에 나온 Run 명령어를 실행시킬 수 있다.
아래 예문에서 첫 번째는 윈키+N을 핫키로 지정한 거고, 두 번째는 컨트롤+알트+C를 지정한 거다.
#n::Run, Notepad
^!c::Run, calc.exe

위 예들은 핫키 하나에 명령어 하나씩만 지정한 “싱글라인 핫키”들이다.
핫키 하나에 여러 개의 명령을 지정하고 싶으면, 핫키 정의 먼저 쓰고
그 다음 줄부터 명령어들을 쭉 쓴 다음 마지막에 return이라고 쓴다.
예를 들면:
#n::
Run, (Link)www.google.com
Run, Notepad.exe
return

프로그램이나 문서가 (윈도우즈 같은) 운영체제에서 알아먹기 힘든 거면, 전체 패스를 써줘야 한다.
Run, %ProgramFiles%\Winamp\Winamp.exe
위 예문에서 %ProgramFiles%는 운영체제에서 관리하는 환경변수다.
C:\Program Files라고 쓰는 것보다 확장성을 더 좋게 하기 위해 사용한다.
다른 컴퓨터에서도 실행시킬 수 있게 한다는 얘기다.
(역주: 환경변수가 뭔지 잘 모르면 그냥 넘어가고, 전체 경로를 써줘도 문제 생길 일 별로 없다.)

스크립트에서 프로그램이나 문서를 띄웠는데, 계속 뭘 더 하기 전에 아까 띄운 게 끝나길 기다리고 싶으면 Run 대신 RunWait을 써라.
아래 예문처럼 하면, 너가 Notepad를 끝내야(닫아야) 그 다음 나오는 MsgBox 명령어가 실행된다.
RunWait, Notepad
MsgBox, The user has finished (Notepad has been closed).
파라미터를 넘기거나, 작업 디렉토리를 지정하거나, 프로그램의 반환값(리턴코드)를 알아내는 것
등 프로그램 실행에 관해 더 알고 싶으면 여기를 클릭해라. (역주: 원문에 가서 클릭해라.)


키스트로크나 마우스 클릭 보내기
Send 명령어를 쓰면, 키스트로크(키 눌림의 연속)이 활성화된 윈도우창에 보내진다.
아래 예에서 윈키+S 를 누르면 “신시얼리, (엔터) 존 스미스”라고 타이핑된다.
핫키 누르기 전에 그 윈도우창이 활성화되었는지 꼭 확인해라.
#s::
Send, Sincerely,{Enter}John Smith
return

위 예에서 (엔터)만 빼고 쓰여진 글자들 그대로 보내진다. (엔터)는 엔터키를 보내라는 뜻이다.
아래 예에서 흔히 쓰이는 특수키들을 좀더 보자.
Send, ^c!{tab}pasted:^v

위 예문은 컨트롤+C 보내고, 알트+탭 보내고, “pasted:” 보내고, 컨트롤+V 보낸다.
(역주: 선택된 영역 복사하고, 다른 창으로 가서 pasted: 쓰고 붙여넣기 하는 거다.)
특수문자랑 특수키들 전부 보려면 Send 명령어 설명서 봐라.

약자(약어)를 쳐서 키스트로크를 보내게 할 수도 있다.
예를 들어 KFC만 치고 띄어쓰기(스페이스)나 쉼표를 치면 자동으로 Kentucky Fried Chicken으로
바뀌게 하고 싶으면 이렇게 해라.
::kfc::kentucky fried chicken

마우스 클릭을 보내고 싶으면, 우선 어디를 클릭하라고 할건지 알려줄 좌표를 알아야 한다.
AutoHotKey에 포함된 AutoScriptWriter나 Window Spy를 이용하면 좌표를 얻을 수 있다.
Window Spy를 이용하는 방법을 좀 보자.
1.        Window Spy를 실행시킨다.
2.        좌표를 알아내고 싶은 윈도우창을 활성화시킨다.
          (윈도우 스파이는 원래 계속 “항상 위”에 있다.)
3.        마우스 커서를 원하는 위치로 이동한 뒤, 윈도우 스파이에 나타난 마우스 좌표를 기록한다.
          (또는 쉬프트+알트+탭을 눌러 다시 윈도우 스파이를 활성화시키고,
           표시된 좌표를 긁어서 복사, 붙여넣기 해도 된다.)
4.        이렇게 알아낸 좌표를 MouseClick 명령어에 이용한다.
          112, 223 위치에 왼쪽클릭을 하고 싶으면:
          MouseClick, left, 112, 223

클릭은 안하고 마우스 커서를 이동만 시키고 싶으면 MouseMove, 드래그 시키고 싶으면 MouseClickDrag 명령어를 써라.

두 번째 부분 올라갑니다.
참고로 저는 아직 이 프로그램을 본격적으로 사용해보지 않았습니다.
그리고, 영문 윈도우즈를 사용하는지라 한글화된 윈도우즈 용어들을 잘 모릅니다.
===============================================================================
-------------------------------
윈도우들 활성화시키고, 관리하기

(역주: "윈도우즈"는 운영체제 이름이고, "윈도우"는 윈도우즈 안에 뜨는 창을 말한다.
Part 1에서는 헷갈리지 말라고 "윈도우창"이라는 말을 쓰기도 했다.
이제부터 그냥 "윈도우"라고 말할란다.)
윈도우를 활성화시키고 싶으면(맨 앞으로 올려놓고 싶으면) WinActivate 명령을 써라.
어떤 윈도우가 존재하는지 알고 싶으면 IfWinExist나 WinWait 명령을 써라.
예를 들면:
IfWinExist, Untitled - Notepad
{
        WinActivate
}
else
{
        Run, Notepad
        WinWait, Untitled - Notepad
        WinActivate
}
위 예는, 먼저 "Untitled – Notepad"라고 시작하는 윈도우가 있는지 찾아보고,
(대/소문자 구별한다) 그런 윈도우가 있으면 활성화시킨다.
그런 윈도우가 없으면 Notepad(메모장)를 실행시키고,
그 윈도우가 생길 때까지 기다렸다가, 활성화시킨다.
위 예에서는 각 WinActivate마다  윈도우 제목을 지정해주지 않기 위해 "마지막으로 찾은 윈도우"를 활용한다.
(역주: IfWinExist나 WinWait을 하고 바로 파라미터 없이 WinActivate를 하면,
방금 찾거나 기다린 윈도우를 활성화시킨다는 얘기다.)

자주 쓰이는 윈도우 명령어를 좀더 보면:
•        IfWinActive: 지정한 윈도우가 지금 활성화 상태인지 체크한다.
•        WinWaitActive: 지정한 윈도우가 활성화될 때까지 기다린다. (보통 Run 명령어 바로 다음에 쓴다.)
•        WinClose: 지정한 윈도우를 닫는다(종료한다.)
•        WinMove: 지정한 윈도우를 이동시키거나 크기를 조절한다.
•        WinMinimize, WinMaximize, WinRestore: 각각 지정한 윈도우를 최소화, 최대화, 복원시킨다.

----------------------------------------
MsgBox, InputBox 등으로 사용자 입력 받기

아래 예는 YES, NO 두 개의 버튼이 달린 다이얼로그를 띄운다.
MsgBox, 4, , Would you like to continue?
IfMsgBox, No
        return
; Otherwise, the user picked yes.
MsgBox, You pressed YES.

InputBox를 쓰면 문자열을 입력받을 수 있다.
FileSelectFile나 FileSelectFolder로 파일이나 폴더를 선택하게 할 수도 있다.
좀더 고급 기능을 원하면, Gui 명령을 써라.

------------------------
변수와 클립보드 사용하기
"변수"란 어떤 값(value)을 저장하기 위해 마련된 메모리 공간이다.
"문자열"이라 부르기도 하는 "값"은 연속된 문자나 숫자가 될 수 있다.
문자와 숫자를 특별히 구별하지는 않지만(모두 문자열로 인식한다),
숫자로만 이루어진 문자열은 좀 다르게 취급하는 경우도 있다.
예를 들어, if (InputString > BookmarkString) 에서 두 변수 모두 숫자로만 이루어져 있으면,
어느 숫자가 큰 값인지 비교한다.
둘 중 하나에라도 문자가 들어있으면, 알파벳 순으로 비교한다.
함수 안에 있는 로컬 변수를 제외한 모든 변수는 전역 변수이다.
(역주: 로컬 변수가 한글로 뭔지 생각이 안난다.)
스크립트 안의 아무데서나 읽거나 변경할 수 있다는 얘기다.
변수 선언문은 필요 없고, 자동으로 생성된다.
(역주: 다른 대부분의 프로그래밍 언어에서는 변수 선언문이 꼭 있어야 한다.)

변수에 문자열을 넣고 싶으면 이렇게 해라.
MyVar1 = 123
MyVar2 = my string

변수에 있는 문자열이나 숫자를 비교하고 싶으면 이렇게 해라.
if MyVar2 = my string
{
        MsgBox MyVar2 contains the string "my string".
}
if MyVar1 >= 100
{
        MsgBox MyVar1 contains %MyVar1%, which is a number greater than or equal to 100.
}
위 예문에서, 두 번째로 나오는 MyVar1 양쪽에 퍼센트(%) 기호가 붙어있는 걸 봐라.
이렇게 하면 그 위치에 MyVar1의 내용이 표시된다.
어떤 변수의 내용을 다른 변수로 복사하고 싶을 때도 똑같이 하면 된다.
이렇게:
MyVarConcatenated = %MyVar1% %MyVar2%
저기 위에서 MyVar1에다 "123"을 넣었고, MyVar2에는 "my string"을 넣어놨었으니까,
MyVarConcatenated에는 "123 my string"이 들어간다.
(역주: Concatenate은 "뒤에 붙이다"라는 뜻이다.)

변수 두 개를 비교할 때, 주의 할 게 있다.
if (ItemCount > ItemLimit + 1)
{
        MsgBox The value in ItemCount, which is %ItemCount%, is greater than %ItemLimit% + 1.
}
if 뒤의 문장에 괄호가 붙어있다. 괄호가 붙으면 if문에 "익스프레션"이 나온다는 얘기다.
괄호가 없으면 "익스프레션이 아닌 if문"으로 보기 때문에, ItemLimit 양쪽에 퍼센트 기호를 붙여야 한다.
그런 if문에서는 비교 연산자 한 개만 사용할 수 있다.
수학 연산자나, AND, OR 같은 접속사는 쓸 수 없다는 얘기다.
(역주: 이 부분은 나도 잘 이해가 안된다. 사용해봐야 구체적으로 알 수 있을 것 같다.)

수학 연산을 하려면 :=을 써서 익스프레션의 결과를 변수에 저장한다.
NetPrice := Price * (1 - Discount/100)
수학 연산을 더 잘 알고 싶으면 expressions 부분을 봐라.

Clipboard라는 변수는 현재 윈도우즈 클립보드의 내용이 들어있는 특별한 놈이다.
(역주: 클립보드란 영역 등을 복사(Ctrl+C)했을 때 그 내용이 들어가는 메모리 영역이다.)
특별한 놈이긴 해도, 그냥 보통 변수처럼 사용할 수 있다.
예를 들어, 아래 예문은 현재 클립보드의 내용을 보여준다.
MsgBox %clipboard%

클립보드 내용을 바꾸려면 아래처럼 한다. 현재 클립보드의 내용을 새로운 문장으로 바꾸는 예다.
clipboard = A line of text.`r`nA second line of text.`r`n
위 예에서, `r과 `n은 특수문자다. `r은 캐리지 리턴, `n은 라인피드. 이 두 개를 쓰면 엔터를 친 것처럼 다음 줄로 넘어가게 된다.
(역주: C언어에서 ‘\n’과 마찬가지다. 캐리지 리턴은 커서를 그 줄 맨 앞으로 보내고,
       라인피드는 커서를 다음 줄로 보내는 거라서,
       두 개를 다 쓰면 커서를 다음줄 맨 앞으로 보내게 된다.)

클립보드 원래 내용 뒤에 뭘 더 붙이고 싶으면 이렇게 해라.
clipboard = %clipboard% And here is the text to append.
자세한 건 clipboard와 variables 부분을 보면 나온다.

여러 개의 액션을 계속 반복하기

뭔가를 반복해서 수행하고 싶으면 loop을 쓰면 된다.
아래처럼 하면 MsgBox를 세 번 띄울 수 있다.
Loop 3
{
        MsgBox This window will be displayed three times.
}
Loop 다음에 변수를 지정할 수도 있다. 얼마나 반복할지 아직 모를 때는 이렇게 한다.
Loop %RunCount%
{
        Run C:\Check Server Status.exe
        Sleep 60000  ; Wait 60 seconds.
}
위 예에서, RunCount에 들어있는 수만큼 반복한다. 물론 0이면 한번도 안하고 지나간다.

루프 안에서 임의로 반복을 중지시킬 수도 있다.
Loop  ; Since no number is specified with it, this is an infinite loop unless "break" or "return" is encountered inside.
{
        PixelGetColor, Color, 11, 22
        if Color = 0xEEAA99  ; This screen pixel  is now the correct color.
                break  ; Break out of the loop.
        ; Otherwise, keep clicking the OK button until the pixel changes color:
        ControlClick, OK, Title of Target Window
}
위 예는 일명 "while…do" 루프와 똑같다.
"while…do"란, 어떤 상태가 지속되는 동안은 뭔가를 계속 반복한다는 거다.
(역주: 손가락 지문이 닳을 때가지… 두들길지어다!)
위 예문의 경우, 11, 22 좌표의 점이 원하는 색깔이 아닌 동안 계속 버튼을 클릭하다가,
원하는 색깔이 나오면, break 명령으로 루프에서 빠져나와 아래줄로 넘어간다.

위 예는 범용 루프이고, 좀 특별한 루프들도 있다.
File-reading/writing loop: 파일 읽기/쓰기 루프: 텍스트 파일에서 한 줄씩 읽어온다.
파일을 한 줄씩 바꾸고 싶을 때 사용할 수 있다. 특정 조건을 만족하는 줄을 찾을 때도 사용할 수 있다.
Files and folders loop: 특정한 파일이나 폴더를 하나씩 읽어온다.
어떤 조건을 만족하는 파일이나 폴더에다 뭘 하고 싶을 때 사용할 수 있다.
Parsing loop: 문자열의 일부를 하나씩 읽어온다.
"Red, Green, Blue"같은 문자열을 세 개의 구성요소로 쉽게 분리시킬 수 있다.
Registry loop: 특정 레지스트리 서브키의 내용을 하나씩 읽어온다.

--------------------
파일과 폴더 관리하기

새 파일을 만들거나, 기존 파일에 텍스트를 더 붙이고 싶으면 FileAppend를 써라.
`n을 써서 다음 줄로 넘어가는 걸 잘 봐라.
(역주: 앞에서 `r`n을 썼었는데 왜 이번엔 `n 만 쓰냐고? 막상 설명하려니 귀찮네… 그냥 넘어가면 안될까?)
FileAppend, A line of text to append.`n, C:\My Documents\My Text File.txt

기존 파일을 덮어쓰고 싶으면 FileAppend 하기 전에 아래처럼 FileDelete 하면 된다.
FileDelete, C:\My Documents\My Text File.txt

주로 쓰이는 파일/폴더 명령어 좀 더 보면:
•        FileRead: 변수에다 파일 내용 몽땅 넣는다.
•        File-reading Loop: 텍스트 파일을 한 줄씩 읽는다.
•        IfExist: 파일이나 폴더가 존재하는지 찾아본다.
•        FileSelectFile and FileSelectFolder: 파일이나 폴더 선택하는 다이얼로그 띄운다.
•        FileDelete/FileRecycle: 파일을 지우거나 휴지통에 넣는다.
•        FileRemoveDir: 폴더를 지운다. 
•        FileCopy/FileMove: 파일을 복사하거나 옮긴다.
•        FileCopyDir/FileMoveDir: 폴더를 복사하거나 옮긴다.
•        File Loop: 폴더 안의 폴더와 파일들을 하나씩 읽어온다.
•        FileSetAttrib and FileSetTime: 파일의 속성이나 타임스탬프를 바꾼다.
•        IniRead, IniWrite, and IniDelete: 표준 INI 파일을 가지고 논다.
•        RegRead, RegWrite, RegDelete, and Registry Loop: 윈도우즈 레지스트리를 가지고 논다.

다른 기능들
아직 안썼다. command list 보면 모든 명령어에 대해 나와 있다.
(역주: 내가 아직 안쓴 게 아니라, 원래 아직 안썼다고 나와있다.)

 

Hotkey 만들기

 

Hotkeys
핫키는 숏컷이라고 부르기도 한다. 아래 예는 윈키+N으로 메모장을 실행시키는 거다.
#가 윈키를 의미한다.
#n::
Run Notepad
return

마지막 줄의 “return”은 핫키를 끝내는 역할을 한다.
핫키의 역할이 단 한 줄을 실행하는 거라면 :: 뒤에 그 한 줄만 써도 됀다.
return은 없어도 된다는 말이다.
#n::Run Notepad

두 개 이상의 모디파이어 키(쉬프트, 알트, 컨트롤, 윈키 등)를 사용하고 싶으면 연달아 쓰면 된다.
컨트롤+알트 경우에 ^!
^!s::
Send Sincerely,{enter}John Smith  ; This line sends keystrokes to the active (foremost) window.
return

모디파이어 기호들이다.
Symbol        Description
#
        윈키
!
        알트
^
        컨트롤
+
        쉬프트
&
        두 개의 키나 마우스 버튼을 조합할 때 쓴다. 아래에 자세히…
<
        모디파이어 키가 좌우로 있는 경우 왼쪽을 지정한다.
        <!a 는 왼쪽 알트 + a 를 말한다.
>
        오른쪽 키다. 위에꺼랑 이건 윈도우즈 95/98/ME에서 지원 안한다.
<^>!
        AltGr키. 오른쪽 알트 대신 AltGr키가 있는 경우 사용한다. (윈도우즈 NT/2000/XP에서만 지원) 예를 들어
        <^>!m::MsgBox You presssed AltGr+m.
        <^<!m::MsgBox You pressed LeftControl+LeftAlt+m.
*
        와일드카드: 다른 모디파이어 키가 동시에 눌렸을 때도 실행한다. 리매핑과 함께 자주 사용된다. 예를 들어:
        *#c::Run Calc.exe  ; Win+C, Shift+Win+C, Ctrl+Win+C, 등을 눌러도 실행된다.
        *ScrollLock::Run Notepad  ; 모디파이어 키랑 같이 눌러도 실행된다.
        Windows 95/98/ME에서는 지원 안함.
~
        키의 원래 기능도 같이 동작한다. 이거 없이 쓰면 원래 기능은 무시되고 지정한 기능만 수행된다.
        아래 예에서 ~가 없으면 메시지 박스만 나오는데, ~가 있으면 마우스 오른쪽 버튼의 원래 기능도 같이 수행된다.
        ~RButton::MsgBox You clicked the right mouse button.
        ~RButton & C::MsgBox You pressed C while holding down the right mouse button.
$
        Send 명령어로 보내는 명령어에 자기자신이 포함되어 있는 경우 쓴다.
        이걸 안쓰면 자기가 보낸걸 자기가 또 반복하는 경우가 생긴다.
        운영체제마다 좀 다르다. (어떻게 다른지는 원문 참조)
        t::www.kbdmania.net
        이렇게 쓰면 끝의 t가 다시 www.kbdmania.net을 부르고
        그 끝의 t가 또 www.kbdmania.net을 부르고 계속 반복된다. 앞에 $를 붙이면 해결.
UP
        키를 눌렀을 때 말고 키를 놓았을 때 실행하고 싶으면 키 이름 뒤에 Up을 붙인다.
        조이스틱 버튼은 해당 안된다.
        *LWin::Send {LControl Down}
        *LWin Up::Send {LControl Up}

키보드랑 마우스, 조이스틱 버튼 전부 보고 싶으면 Key List 참조.

핫키 레이블은 보통 레이블처럼 쓸 수 있다. Gosub/Goto등으로 이동할 수 있고,
여러 개의 핫키로 같은 일을 할 수도 있다.
아래 예는 숫자키 0과 1이 같은 기능을 하도록 한 거다.
^Numpad0::
^Numpad1::
MsgBox Pressing either Control+Numpad0 or Control+Numpad1 will display this message.
return

이렇게 쓰면 그 키를 완전 무시한다.
RWin::return

 

 

Command Reference

 

모든 명령어에 대한 간략한 설명입니다.
오토핫키가 뭐 하는 건지 감을 잡으셨으면, 이걸 쭉 보는 게 좋을 것 같네요.
명령어가 230여개에 달하는 지라 하나하나 자세히 짚을 수는 없겠습니다.
원문도 지우지 않고 그대로 두었습니다.
===========================================================================
{ ... }
Denotes a block. Blocks are typically used with functions, Else, Loop, and IF-commands.
블락을 감싸는 기호. 함수, IF, Else, Loop 등에서 사용.

AutoTrim
Determines whether SetEnv and "var = value" statements remove spaces and tabs from the beginning and end of the string.
SetEnv, “var = value” 같이 변수에 문자열을 지정할 때, 시작/끝 부분의 빈칸과 탭을 없애고 넣을 것인지 결정. 없애는 게 기본값.

BlockInput
Disables or enables the user's ability to interact with the computer via keyboard, mouse, and perhaps other input devices.
키보드나 마우스, 기타 입력장치를 막아 버릴 수 있다.

Break
Exits (terminates) a loop. Valid only inside a loop.
루프(반복구문)에서 빠져나온다.

ClipWait
Waits until the clipboard contains data.
클립보드에 뭔가 쓰여질 때까지 기다린다.

Continue
Skips the rest of the current loop iteration and begins a new one. Valid only inside a loop.
루프에서 남은 부분을 생략하고 처음 부분부터 반복

Control
Makes a variety of changes to a control.
컨트롤 가지고 놀기

ControlClick
Sends a mouse button or mouse wheel event to a control.
컨트롤에 마우스 버튼이나 휠 이벤트 보내기

ControlFocus
Sets input focus to a given control on a window.
윈도우의 지정된 컨트롤로 입력 포커스를 옮김.

ControlGet
Retrieves various types of information about a control.
컨트롤 정보 가져오기

ControlGetFocus
Retrieves which control of the target window has input focus, if any.
윈도우의 어떤 컨트롤에 입력 포커스가 있는지 알아내기.

ControlGetPos
Retrieves the position and size of a control.
컨트롤의 위치와 크기 알아내기

ControlGetText
Retrieves text from a control.
컨트롤에서 텍스트 가져오기

ControlMove
Moves or resizes a control.
컨트롤 위치나 크기 변경

ControlSend / ControlSendRaw 
Sends simulated keystrokes to a window or control.
윈도우나 컨트롤에 가장 키스트로크 보내기

ControlSetText
Changes the text of a control.
컨트롤의 텍스트 바꾸기

CoordMode
Sets coordinate mode for various commands to be relative to either the active window or the screen.
여러 명령에서 쓰이는 좌표 모드를 설정하기.
활성창 기준 좌표 <-> 전체 스크린 좌표

Critical
Prevents the current thread from being interrupted by other threads.
다른 스레드가 현재 스레드를 방해하는 걸 방지.
(오토핫키는 멀티스레드 방식으로 여러 개의 스크립트가 동시에 돌아갈 수 있음.)

DetectHiddenText
Determines whether invisible text in a window is "seen" for the purpose of finding the window. This affects commands such as IfWinExist and WinActivate.
IfWinExist나 WinActivate 등을 사용할 때 숨겨진 텍스트를 보이게 하는 기능.

DetectHiddenWindows
Determines whether invisible windows are "seen" by the script.
숨겨진 윈도우를 볼 수 있게 하는 기능

DllCall()
Calls a function inside a DLL, such as a standard Windows API function.
스탠다드 윈도우즈 API 함수같은, DLL 안의 함수를 호출.

Drive
Ejects/retracts the tray in a CD or DVD drive, or sets a drive's volume label.
CD/DVD 드라이브를 열고, 닫고, 이름 바꾸고.

DriveGet
Retrieves various types of information about the computer's drive(s).
드라이브(하드, 플로피, 옵티컬 등) 정보 얻어내기

DriveSpaceFree
Retrieves the free disk space of a drive, in Megabytes.
드라이브의 빈 공간 알아내기.

Edit
Opens the current script for editing in the associated editor.
편집기를 띄워 현재 스크립트를 편집하기.

Else
Specifies the command(s) to perform if an IF-statement evaluates to FALSE. When more than one command is present, enclose them in a block (braces).
If 문 다음에 “아니면” 실행.

EnvAdd
Sets a variable to the sum of itself plus the given value (can also add or subtract time from a date-time value). Synonymous with: var += value
원래 값에 다른 값을 더해서 자기 자신에 할당. 이것과 같음: var += value

EnvDiv
Sets a variable to itself divided by the given value. Synonymous with: var /= value
원래 값에 다른 값을 나눠서 자기 자신에 할당. var /= value

EnvMult
Sets a variable to itself times the given value. Synonymous with: var *= value
곱해서 할당.

EnvSet
Writes a value to a variable contained in the environment.
환경변수에 포함된 변수에 값을 씀.

EnvSub
Sets a variable to itself minus the given value (can also compare date-time values). Synonymous with: var -= value
원래 값에서 다른 값을 빼서 자기 자신에 할당.

EnvUpdate
Notifies the OS and all running applications that environment variable(s) have changed.
운영체제와 다른 프로그램에게 환경변수 내용이 바뀌었다고 알려줌.

Exit
Exits the current thread or (if the script is not persistent contains no hotkeys) the entire script.
현재 스레드나 전체 스크립트 실행을 중단.

ExitApp
Terminates the script unconditionally.
무조건 스크립트를 중단.

FileAppend
Appends text to a file (first creating the file, if necessary).
파일에 텍스트를 덧붙임.

FileCopy
Copies one or more files.
파일 복사

FileCopyDir
Copies a folder along with all its sub-folders and files (similar to xcopy).
폴더를 내용물까지 전부 복사

FileCreateDir
Creates a folder.
폴더 만들기

FileCreateShortcut
Creates a shortcut (.lnk) file.
링크파일 만들기

FileDelete
Deletes one or more files.
파일 삭제

FileInstall
Includes the specified file inside the compiled script.
컴파일된 스크립트에 지정 파일을 포함

FileGetAttrib
Reports whether a file or folder is read-only, hidden, etc.
파일이나 폴더의 속성 알아내기

FileGetShortcut
Retrieves information about a shortcut (.lnk) file, such as its target file.
링크 파일에 대한 정보 알아내기.

FileGetSize
Retrieves the size of a file.
파일의 크기 알아내기.

FileGetTime
Retrieves the datetime stamp of a file or folder.
파일이나 폴더의 타임스탬프 정보 가져오기.

FileGetVersion
Retrieves the version of a file.
파일의 버전정보 가져오기.

FileMove
Moves or renames one or more files.
파일 이동/이름변경.

FileMoveDir
Moves a folder along with all its sub-folders and files. It can also rename a folder.
폴더 이동/이름변경.

FileRead
Reads all of a file's text into a variable.
파일 내용 몽땅 읽어오기.

FileReadLine
Reads the specified line from a file and stores the text in a variable.
파일의 특정 라인 읽어오기.

FileRecycle
Sends a file or directory to the recycle bin, if possible.
파일 지우거나 휴지통으로 보내기.

FileRecycleEmpty
Empties the recycle bin.
휴지통 비우기.

FileRemoveDir
Deletes a folder.
폴더 지우기.

FileSelectFile
Displays a standard dialog that allows the user to select file(s).
파일 선택하는 표준 다이얼로그 띄우기.

FileSelectFolder
Displays a standard dialog that allows the user to select a folder.
폴더 선택하는 표준 다이얼로그 띄우기.

FileSetAttrib
Changes the attributes of one or more files or folders. Wildcards are supported.
파일/폴더의 속성 바꾸기.

FileSetTime
Changes the datetime stamp of one or more files or folders. Wildcards are supported.
파일, 폴더의 타임스탬프 정보 바꾸기.

FormatTime
Transforms a YYYYMMDDHH24MISS timestamp into the specified date/time format.
YYYYMMDDHH24MISS 타임스탬프 정보를 다른 형식으로 변환하기.

GetKeyState
Checks if a keyboard key or mouse/joystick button is down or up. Also retrieves joystick status.
키보드, 마우스, 조이스틱 버튼이 눌려있는지 알아보기.

Gosub
Jumps to the specified label and continues execution until Return is encountered.
해당 레이블로 뛰어서 Return 만날 때까지 계속 실행.

Goto
Jumps to the specified label and continues execution.
해당 레이블로 뛰어서 계속 실행(Gosub랑 뭐가 다른지 잘 모르겠음.)

GroupActivate
Activates the next window in a window group that was defined with GroupAdd.
GroupAdd로 설정된 윈도우 그룹 중 다음 윈도우를 활성화 시킴.

GroupAdd
Adds a window specification to a window group, creating the group if necessary.
윈도우에 그룹 속성을 추가함.

GroupClose
Closes the active window if it was just activated by GroupActivate or GroupDeactivate. It then activates the next window in the series. It can also close all windows in a group.
GroupActivate나 GroupDeactivate로 활성화된 윈도우를 닫고, 다음 윈도우를 활성화시킴. 그룹으로 묶여진 윈도우 전부를 닫을 수도 있다.

GroupDeactivate
Similar to GroupActivate except activates the next window not in the group.
그룹 안에 없는 다음 윈도우를 활성화 시킴.

GUI
Creates and manages windows and controls. Such windows can be used as data entry forms or custom user interfaces.
윈도우와 컨트롤들을 만들고 관리.

GuiControl
Makes a variety of changes to a control in a GUI window.
GUI 윈도우 내의 컨트롤을 가지고 논다.

GuiControlGet
Retrieves various types of information about a control in a GUI window.
GUI 윈도우의 컨트롤에 대한 여러가지 정보를 얻어낸다.

HideAutoItWin, On|Off
[Obsolete -- the following is equivalent: Menu, tray, NoIcon|Icon]
안쓰는 명령어. Meny, tray, NoIcon|Icon 이랑 같음.

Hotkey
Creates, modifies, enables, or disables a hotkey while the script is running.
스크립트가 실행되는 동안 핫키를 만들고, 바꾸고, 등등.

if
Specifies the command(s) to perform if the comparison of a variable to a value evalutes to TRUE. When more than one command is present, enclose them in a block (braces).
IF 다음이 참이면 다음 명령을 실행. 명령이 여러개면 블락으로 묶어줌.

if (expression)
Specifies the command(s) to perform if an expression evaluates to TRUE.
마찬가지

If var [not] between
Checks whether a variable's contents are numerically or alphabetically between two values (inclusive).
어떤 변수의 값이 숫자상으로 또는 알파벳 순으로 두 값 사이에 있는지 확인.

If var [not] in/contains MatchList 
Checks whether a variable's contents match one of the items in a list.
어떤 변수의 값이 리스트상의 값들 중 하나와 일치하는지 확인.

If var is [not] type
Checks whether a variable's contents are numeric, uppercase, etc.
어떤 변수의 값이 숫자인지, 대문자로 이루어졌는지 등을 확인.

IfEqual/IfNotEqual
Compares a variable to a value for equality. Synonymous with: if var = value | if var <> value
두 변수가 같은 값인지 확인.

IfExist / FileExist()
Checks for the existence of a file or folder.
파일이나 폴더가 존재하는지 확인.

IfGreater/IfGreaterOrEqual
Compares a variable to a value. Synonymous with: if var > value | if var >= value
두 변수를 비교해 앞에 게 큰지 확인.

IfInString / InStr()
Checks if a variable contains the specified string.
변수에 어떤 문자열이 들어있는지 확인.


IfLess/IfLessOrEqual
Compares a variable to a value. Synonymous with: if var < value | if var <= value
앞두 변수를 비교해 앞에게 작은지 확인.

IfMsgBox
Checks which button was pushed by the user during the most recent MsgBox command.
방금 메시지박스에서 사용자가 어떤 버튼을 눌렀는지 알아냄.

IfWinActive / IfWinNotActive
Checks if the specified window exists and is currently active (foreground).
지정한 윈도우가 존재하고 활성화 상태인지 확인.

IfWinExist / IfWinNotExist
Checks if the specified window exists.
지정한 윈도우가 존재하는지 확인.

ImageSearch
Searches a region of the screen for an image.
지정된 구역에서 이미지를 찾음. (이 기능 맘에 든다.)
웹페이지에서 어떤 배너를 항상 클릭하게 만들고 싶은데 그 위치가 수시로 바뀔 때, 그 배너 이미지를 따로 저장해 놓고, 저장해 놓은 이미지랑 똑같은(혹은 비슷한) 이미지를 화면에서 찾으라고 하면 딱 찾아준다. 와…

IniDelete
Deletes a value from a standard format .ini file.
스탠다드 INI 파일에서 값을 지움.

IniRead
Reads a value from a standard format .ini file.
스탠다드 INI 파일에서 값을 읽음.

IniWrite
Writes a value to a standard format .ini file.
스탠다드 INI 파일에서 값을 씀.

Input
Waits for the user to type a string (not supported on Windows 9x).
사용자가 문자열을 입력할 때까지 기다린다.

InputBox
Displays an input box to ask the user to enter a string.
사용자로부터 문자열 입력을 받기 위한 박스를 띄운다.

KeyHistory
Displays script info and a history of the most recent keystrokes and mouse clicks.
최근 키보드와 마우스 클릭 상태를 보여준다. 키보드 스캔코드와 마우스 좌표 등을 알아낼 때 유용하다.

KeyWait
Waits for a key or mouse/joystick button to be released or pressed down.
키보드나 마우스, 조이스틱 버튼이 눌리거나 떼어지길 기다린다.

LeftClick
[Obsolete -- use MouseClick for greater flexibility]
안쓰이는 명령어. MouseClick을 써라.

LeftClickDrag
[Obsolete -- use MouseClickDrag for greater flexibility]
안쓰이는 명령어. MouseClickDrag를 써라.

ListHotkeys
Displays the hotkeys in use by the current script, whether their subroutines are currently running, and whether or not they use the keyboard or mouse hook.
현재 스크립트에 의해 지정되어 있는 핫키의 상태를 보여준다.

ListLines
Displays the script lines most recently executed.
최근 실행된 스크립트 라인들을 보여준다.

ListVars
Displays the script's variables: their names and current contents.
스크립트에서 사용되는 변수들을 보여준다. 이름이랑 현재 값들…

Loop (normal) 
Perform a series of commands repeatedly: either the specified number of times or until break is encountered.
명령들을 반복한다. 횟수를 지정할 수도 있고, 중간에 break로 끊을 수도 있다.

Loop (files & folders)
Retrieves the specified files or folders, one at a time.
지정된 파일이나 폴더를 하나씩 읽어온다.

Loop (parse a string) 
Retrieves substrings (fields) from a string, one at a time.
문자열에서 거기 포함된 문자열을 하나씩 읽어온다.

Loop (read file contents)
Retrieves the lines in a text file, one at a time (performs better than FileReadLine).
텍스트 파일을 한 줄씩 읽어온다. (FileReadLine보다 낫다.)

Loop (registry)
Retrieves the contents of the specified registry subkey, one item at a time.
레지스트리 서브키의 값을 하나씩 읽어온다.

Menu
Creates, deletes, modifies and displays menus and menu items. Changes the tray icon and its tooltip. Controls whether the main window of a compiled script can be opened.
GUI에서 쓰는 명령. 메뉴와 메뉴 아이템 가지고 놀기. 트레이 아이콘, 툴팁 바꾸기, 등등.

MouseClick
Clicks or holds down a mouse button, or turns the mouse wheel.
마우스 클릭, 마우스 휠 돌리기. 매우 유용할 것 같음.

MouseClickDrag
Clicks and holds the specified mouse button, moves the mouse to the destination coordinates, then releases the button.
마우스로 드래그하기.

MouseGetPos
Retrieves the current position of the mouse cursor, and optionally which window and control it is hovering over.
마우스 커서의 위치, 커서가 어떤 윈도우, 컨트롤 위에 있는지 알아내기.
Script Showcase(samples)에 보면 Mouse Gestures – by deguix 가 있는데, 마우스 움직임을 감지하여 여러가지 기능을 한다고 합니다. Fingerworks iGesture 기능을 구현한 거죠. 이 함수를 이용했을 겁니다.

MouseMove
Moves the mouse cursor.
마우스 커서 이동시키기.

MsgBox
Displays the specified text in a small window containing one or more buttons (such as Yes and No).
메시지박스 띄우기.

OnExit
Specifies a subroutine to run automatically when the script exits.
스크립트 끝날 때  자동으로 수행할 서브루틴 지정하기.

OnMessage()
Specifies a function to run automatically when the script receives the specified message.
특정 메시지를 받으면 자동으로 수행할 함수 지정하기.

OutputDebug
Sends a string to the debugger (if any) for display.
디버거에 표시할 문자열 보내기.

Pause
Pauses the script's current thread.
스크립트 수행 잠시 멈추기.

PixelGetColor
Retrieves the color of the pixel at the specified x,y screen coordinates.
지정한 좌표의 색깔 알아내기.

PixelSearch
Searches a region of the screen for a pixel of the specified color.
지정된 구역 안에서 어떤 색깔을 가진 점 찾아내기.

PostMessage
Places a message in the message queue of a window or control.
윈도우나 컨트롤의 메시지큐에 메시지 집어넣기.

Process
Performs one of the following operations on a process: checks if it exists; changes its priority; closes it; waits for it to close.
프로세스 가지고 놀기.

Progress
Creates or updates a window containing a progress bar.
프로그레스 바 있는 윈도우 만들거나 업데이트하기.

Random
Generates a pseudo-random number.
난수? 만들기

RegDelete
Deletes a subkey or value from the registry.
레지스트리 서브키 지우기.

RegRead
Reads a value from the registry.
레지스트리 값 읽어오기.

RegWrite
Writes a value to the registry.
레지스트리 값 쓰기.

Reload
Replaces the currently running instance of the script with a new one.
스크립트 다시 실행하기

Repeat¡¦EndRepeat
[Obsolete -- use Loop for greater flexibility]
안쓰는 명령어. Loop을 쓰시오.

Return
Returns from a subroutine to which execution had previously jumped via function-call, Gosub, Hotkey activation, GroupActivate, or other means.
함수 종료하고 불렸던 곳으로 돌아감.

RightClick
[Obsolete -- use MouseClick for greater flexibility]
안씀.

RightClickDrag
[Obsolete -- use MouseClickDrag for greater flexibility]
안씀.

Run
Runs an external program.
외부 프로그램을 실행.

RunAs
Specifies a set of user credentials to use for all subsequent uses of Run and RunWait. Requires Windows 2000/XP or later.
프로그램 수행시 필요한 ID와 Password 등을 지정.

RunWait
Runs an external program and waits until it finishes.
외부 프로그램을 실행시키고 그게 끝날 때까지 기다림.

Send / SendRaw 
Sends simulated keystrokes to the active window.
활성화된 윈도우에 키스트로크 보냄.

SendMessage
Sends a message to a window or control and waits for acknowledgement.
윈도우나 컨트롤에 메시지 보내고 애크를 기다림.
(애크: 뭘 보내고 나면 받는 쪽에서 다시 보내주는 “잘 받았어!” 하는 응답)

SetBatchLines
Determines how fast a script will run (affects CPU utilization).
스크립트 수행속도를 설정. (CPU 점유율에 영향.)

SetCapslockState
Sets the state of the Capslock key. Can also force the key to stay on or off.
캡스락 키 세팅.

SetControlDelay
Sets the delay that will occur after each control-modifying command.
각 컨트롤-변경 명령 후에 줄 딜레이 설정.

SetDefaultMouseSpeed
Sets the mouse speed that will be used if unspecified in MouseMove/Click/Drag.
MouseMove/Click/Drag에서 디폴트로 사용할 마우스 속도 지정.

SetFormat
Sets the format of integers and floating point numbers generated by math operations.
수학 연산 결과물의 포맷을 지정.

SetKeyDelay
Sets the delay that will occur after each keystroke sent by Send or ControlSend.
Send나 ControlSend로 키스트로크 보내고 난 후에 줄 딜레이 설정.

SetMouseDelay
Sets the delay that will occur after each mouse movement or click.
마우스 이동이나 클릭 후에 줄 딜레이 설정.

SetNumlockState
Sets the state of the Numlock key. Can also force the key to stay on or off.
넘락 키 세팅.

SetScrollLockState
Sets the state of the Scrolllock key. Can also force the key to stay on or off.
스크롤락 키 세팅.

SetStoreCapslockMode
Whether to restore the state of CapsLock after a Send.
Send 후에 캡스락 키 상태를 원복할 것인지 결정.

SetTimer
Causes a subroutine to be launched automatically and repeatedly at a specified time interval.
지정된 시간 간격으로 서브루틴을 자동으로 실행시킴.

SetTitleMatchMode
Sets the matching behavior of the WinTitle parameter in commands such as WinWait.
WinWait 같은 명령에서 윈도우 제목을 찾는 방식 설정.

SetWinDelay
Sets the delay that will occur after each windowing command, such as WinActivate.
윈도우 명령어를 날리고 나서 줄 딜레이 설정.

SetWorkingDir
Changes the script's current working directory.
스크립트의 작업 디렉토리 변경.

Shutdown
Shuts down, restarts, or logs off the system.
컴퓨터를 끄거나 재시작 하거나 로그오프 하기.

Sleep
Waits the specified amount of time before continuing.
잠시 쉬기.

Sort
Arranges a variable's contents in alphabetical, numerical, or random order (optionally removing duplicates).
변수들을 알파벳 순, 숫자 순, 임의 순으로 정렬.

SoundBeep
Emits a tone from the PC speaker.
스피커로 삑 소리.

SoundGet
Retrieves various settings from a sound device (master mute, master volume, etc.)
사운드 디바이스의 세팅 값 알아내기. (음소거, 볼륨 등.)

SoundGetWaveVolume
Retrieves the wave output volume from a sound device.
사운드 디바이스의 wave 출력 볼륨 알아내기.

SoundPlay
Plays a sound, video, or other supported file type.
사운드, 비디오 등 재생하기.

SoundSet
Changes various settings of a sound device (master mute, master volume, etc.)
사운드 디바이스 세팅 값 변경하기. (음소거, 볼륨 등.)

SoundSetWaveVolume
Changes the wave output volume for a sound device.
사운드 디바이스 wave 출력 볼륨 조절하기.

SplashImage
Creates or updates a window containing a JPG, GIF, or BMP image.
이미지 파일 있는 윈도우 만들거나 업데이트 하기.

SplashTextOn
Creates a customizable text popup window.
텍스트 팝업 윈도우 만들기.

SplashTextOff
Closes the above window.
위에서 만든 윈도우 닫기.

SplitPath
Separates a file name or URL into its name, directory, extension, and drive.
파일 이름이나 URL을 이름, 디렉토리, 확장자, 드라이브명으로 분리하기.

StatusBarGetText
Retrieves the text from a standard status bar control.
표준 상태바에서 텍스트 읽어오기.

StatusBarWait
Waits until a window's status bar contains the specified string.
윈도우 상태바가 어떤 문자열을 가질 때까지 기다리기.

이제 슬슬 지겨워지시죠?
그래도 하기로 했으니 마저 올립니다.
전에 올린 part 2에는 FingerWorks iGesture와 비슷한 기능을 할 수 있는 팁이 숨어 있습니다.
그냥 지나치셨다면 다시 한 번 보시길...
==================================================================================
StringCaseSense
Determines whether string comparisons are case sensitive (default is "no").
문자열 비교할 때 대소문자 구별한 건지 설정. (초기값은 구별 안함.)

StringGetPos
Retrieves the position of the specified substring within a string.
문자열에서 포함 문자열의 위치를 알아냄.

StringLeft
Retrieves a number of characters from the left-hand side of a string.
문자열의 왼쪽부터 몇 개의 글자를 읽어옴.

StringMid
Retrieves one or more characters from the specified position in a string.
문자열의 중간 어딘가부터 몇 개의 글자를 읽어옴.

StringRight
Retrieves a number of characters from the right-hand side of a string.
문자열의 오른쪽부터 몇 개의 글자를 읽어옴.

StringLen / StrLen()
Retrieves the count of how many characters are in a string.
문자열에 글자가 몇 개인지 알아냄.

StringLower
Converts a string to lowercase.
문자열을 소문자로 변환.

StringReplace
Replaces the specified substring with a new string.
문자열의 포함 문자열을 다른 걸로 바꿈.

StringSplit
Separates a string into an array of substrings using the specified delimiters.
문자열을 지정된 글자를 기준으로 분리.

StringTrimLeft
Removes a number of characters from the left-hand side of a string.
문자열을 왼쪽부터 몇 개 없앰.

StringTrimRight
Removes a number of characters from the right-hand side of a string.
문자열을 오른쪽부터 몇 개 없앰.

StringUpper
Converts a string to uppercase.
문자열을 대문자로 변환.

Suspend
Disables or enables all or selected hotkeys.
핫키를 disable/enable

ex ) 


F2::suspend, off
F3::suspend, on

Suspend가 On인 상태에서는 핫키를 눌러도 핫키반응을 하지 않고 그냥 일반 키보드 반응이 입력돼요.
평소에는 기본적으로 Suspend가 Off인 상태구요. Suspend상태가 되면

트레이아이콘의 오토핫키 아이콘이 H에서 S로 바뀝니다 ㅎㅎ
///////////////////////////////////////////////////////////////////////////////////////////

SysGet
Retrieves screen resolution, multi-monitor info, dimensions of system objects, and other system properties.
스크린 크기, 멀티 모니터 정보 등의 시스템 속성을 알아냄.

Thread
Sets the priority or interruptibility of threads. It can also temporarily disable all timers.
스레드의 우선순위, 인터럽트 가능여부 등을 설정. 타이머를 전부 죽이기도.

ToolTip
Creates an always-on-top window anywhere on the screen.
항상 위 윈도우를 만들기.

Transform
Performs miscellaneous math functions, bitwise operations, and tasks such as ASCII/Unicode conversion.
수학 함수, 비트 연산, 아스키/유니코드 변환 등 여러가지 기능.

TrayTip
Creates a balloon message window near the tray icon. Requires Windows 2000/XP or later.
윈도우 트레이 아이콘에 풍선도움말 만들기.

URLDownloadToFile
Downloads a file from the Internet.
인터넷에서 파일 다운로드.

Var = value 
Assigns the specified value to a variable.
변수에 값 집어넣기.

Var := expression
Evaluates an expression and stores the result in a variable.
변수에 계산값 집어넣기.

VarSetCapacity()
Enlarges a variable's holding capacity or frees its memory. Normally, this is necessary only for unusual circumstances such as DllCall.
변수에 할당된 메모리를 늘리거나 줄이기.

WinActivate
Activates the specified window (brings it to the foreground).
윈도우 활성화시키기. (맨 앞으로 옮기기.)

WinActivateBottom
Same as WinActivate except that it activates the bottommost (least recently active) matching window rather than the topmost.
WinActivate나 이거나 지정된 윈도우를 찾아서 활성화 시키는데, 위에건 맨 위에서부터 찾고, 이건 맨 밑에서부터 찾아서 활성화 시킴.

WinClose
Closes the specified window.
윈도우 닫기.

WinGetActiveStats
Combines the functions of WinGetActiveTitle and WinGetPos into one command.
WinGetActiveTitle와 WinGetPos를 한 방에.

WinGetActiveTitle
Retrieves the title of the active window.
활성화된 윈도우의 제목 알아내기.

WinGetClass
Retrieves the specified window's class name.
지정된 윈도우의 클래스 이름 알아내기.

WinGet
Retrieves the specified window's unique ID, process ID, process name, or a list of its controls. It can also retrieve a list of all windows matching the specified criteria.
윈도우에 대한 다양한 정보 얻어내기.

WinGetPos
Retrieves the position and size of the specified window.
윈도우 위치와 크기 알아내기.

WinGetText
Retrieves the text from the specified window.
윈도우의 텍스트 읽어오기.

WinGetTitle
Retrieves the title of the specified window.
윈도우의 제목 알아내기.

WinHide
Hides the specified window.
윈도우 숨기기.

WinKill
Forces the specified window to close.
윈도우 죽이기.

WinMaximize
Enlarges the specified window to its maximum size.
윈도우 최대화.

WinMenuSelectItem
Invokes a menu item from the menu bar of the specified window.
윈도우의 메뉴 바에서 메뉴 아이템 선택하기.

WinMinimize
Collapses the specified window into a button on the task bar.
윈도우 최소화.

WinMinimizeAll
Minimizes all windows.
윈도우 전부 최소화

WinMinimizeAllUndo
Reverses the effect of a previous WinMinimizeAll.
WinMinimizeAll 취소

WinMove
Changes the position and/or size of the specified window.
윈도우 위치, 크기 변경.

WinRestore
Unminimizes or unmaximizes the specified window if it is minimized or maximized.
윈도우 최대화, 최소화 취소하고 원래 크기로.

WinSet
Makes a variety of changes to the specified window, such as "always on top" and transparency.
“항상 맨 위에”, 투명도 등 여러가지로 윈도우 가지고 놀기.

WinSetTitle
Changes the title of the specified window.
윈도우 제목 변경.

WinShow
Unhides the specified window.
윈도우 숨긴 거 취소. (다시 나타나게 하기.)

WinWait
Waits until the specified window exists.
윈도우가 생길 때까지 기다리기.

WinWaitActive
Waits until the specified window is active.
윈도우가 활성화될 때가지 기다리기.

WinWaitClose
Waits until the specified window does not exist.
윈도우가 없어질 때까지 기다리기.

WinWaitNotActive
Waits until the specified window is not active.
윈도우가 비활성화 될 때까지 기다리기.

아래는 대부분 필요 없는 것 같아 번역은 생략하고 원문만 남깁니다.

#AllowSameLineComments
Only for AutoIt v2 (.aut) scripts: Allows a comment to appear on the same line as a command.

#ClipboardTimeout
Changes how long the script keeps trying to open the clipboard.

#CommentFlag
Changes the script's comment symbol from semicolon to some other string.

#ErrorStdOut
Sends any syntax error that prevents a script from launching to stdout rather than displaying a dialog.

#EscapeChar
Changes the script's escape character (for example: backslash vs. accent).

#HotkeyInterval
Along with #MaxHotkeysPerInterval, specifies the rate of hotkey activations beyond which a warning dialog will be displayed.

#HotkeyModifierTimeout
Affects the behavior of hotkey modifiers: CTRL, ALT, WIN, and SHIFT.

#Hotstring
Changes hotstring options or ending characters.

#Include
Causes the script to behave as though the specified file's contents are present at this exact position.

#InstallKeybdHook
Forces the unconditional installation of the keyboard hook.

#InstallMouseHook
Forces the unconditional installation of the mouse hook.

#KeyHistory
Sets the maximum number of keyboard and mouse events displayed by the KeyHistory window. You can set it to 0 to disable key history.

#MaxHotkeysPerInterval
Along with #HotkeyInterval, specifies the rate of hotkey activations beyond which a warning dialog will be displayed.

#MaxMem
Sets the maximum capacity of each variable to the specified number of megabytes.

#MaxThreads
Sets the maximum number of simultaneous threads.

#MaxThreadsBuffer
Causes some or all hotkeys to buffer rather than ignore keypresses when their #MaxThreadsPerHotkey limit has been reached.

#MaxThreadsPerHotkey
Sets the maximum number of simultaneous threads per hotkey.

#NoTrayIcon
Disables the showing of a tray icon.

#Persistent
Keeps a script permanently running (that is, until the user closes it or ExitApp is encountered).

#SingleInstance
Prevents more than one instance of a script from existing simultaneously.

#UseHook
Forces the use of the hook to implement all or some keyboard hotkeys.

#WinActivateForce
Skips the gentle method of of activating a window and goes straight to the forceful method.







이미지 서치중 찾은 이미지를 스플레쉬이미지로 덮어씌워 다른위치의 동일 이미지를 찾는 방법


http://blog.naver.com/wowo8701/220641831312





2016 08 08 


마우스 클릭 좌표의 로그 만들기


global cnt


F1::

MouseGetPos, outx , outy ,
msg = %cnt%번 X : %outx%%tab% Y : %outy%`r`n
FileAppend, %msg%, Log.txt
cnt++
return


F2::

run , Log.txt
return





참고용

오토핫키 카페 작성자 검색 : immer

참고용








2016 09 06 


한글및 영어 키상태 변경


 WinGetActiveTitle, ExplorerTitle 
ime_status := % IME_CHECK("A") 
if (ime_status = "0") { 

} else { 
Send, {vk15} 


IME_CHECK(WinTitle) 

WinGet,hWnd,ID,%WinTitle% 
Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"") 


Send_ImeControl(DefaultIMEWnd, wParam, lParam) 

DetectSave := A_DetectHiddenWindows 
DetectHiddenWindows,ON 
SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd% 
if (DetectSave <> A_DetectHiddenWindows) 
DetectHiddenWindows,%DetectSave% 
return ErrorLevel 


ImmGetDefaultIMEWnd(hWnd) 

return DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint) 
}

이게 한글일시 영어로, 영어일땐 놔두는거니까
Send, {vk15}위를 약간 바꿔보세요.
ime status?이게 0일때가 영어입니당





============================================================







작가명만 뺴고 싶은경우


주변에 "작가", "출판"이 앞뒤 줄로 있어서 오히려 더 찾기 쉽죠.
---

RegExMatch(본문, "\r?\n작가\r?\n(.*?)\r?\n출판", match)
MsgBox, %match1%



==========================================================================