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

(역주: "윈도우즈"는 운영체제 이름이고, "윈도우"는 윈도우즈 안에 뜨는 창을 말한다.
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 부분을 보면 나온다.