오토핫키(AutoHotkey)는 이미 많은 사용자에게 알려진 도구이지만, 지금까지는 주로 미리 만들어진 스크립트를 실행하는 방법 위주로 소개되어 왔습니다. 그러나 오토핫키의 진짜 가치는 다른 사람이 만든 스크립트를 돌리는 플랫폼이 아니라, 스스로 필요한 솔루션을 직접 만들 수 있는 스크립팅 언어라는 점에 있습니다. 반복적인 데스크톱 작업이라면 무엇이든 단일 키 입력으로 자동화할 수 있죠. 오토핫키는 이제 완전한 프로그래밍 언어로 발전해 이를 활용한 앱 제작까지 가능하기 때문에, 모든 기능을 다루려면 책 한 권 분량이 필요할 정도입니다.
이 글에서는 가장 기본적인 내용부터 시작해, 여러 단계로 이루어진 작업을 단 하나의 키 입력으로 바꾸는 방법을 단계별로 알아보겠습니다.
설치 방법
공식 사이트에서 오토핫키를 내려받아 설치하세요. 설치 시에는 현재 버전(Current version)을 선택하면 됩니다. 나머지 두 옵션은 무시해도 좋습니다. 'V2'는 문법이 일부 달라 기존 스크립트와 호환되지 않는 새 버전이고, 'V1.0 Deprecated'는 더 이상 권장되지 않는 구버전이기 때문입니다.
빈 스크립트 만들기
설치가 끝나면 오토핫키가 AHK 확장자 파일의 기본 앱으로 등록됩니다. 그렇기 때문에 AHK 파일은 실행 파일처럼 동작하는데, 오토핫키가 파일 내용을 실시간으로 해석하고 실행하는 방식입니다. 하지만 본질적으로 AHK 파일은 어떤 텍스트 편집기로든 열어볼 수 있는 일종의 스크립트 파일입니다.

먼저 첫 번째 스크립트를 담을 새 폴더를 원하는 위치에 만들고, 해당 폴더에서 마우스 오른쪽 버튼을 누른 뒤 컨텍스트 메뉴에 새로 생긴 '새로 만들기 → AutoHotkey Script'를 선택하세요. 파일 이름은 자유롭게 정하면 됩니다.
스크립트 편집 도구 선택하기
완성된 스크립트를 실행할 때처럼 AHK 파일을 더블클릭하지 말고, 오른쪽 버튼을 눌러 편집(Edit)을 선택하세요. AHK 파일은 어떤 텍스트 편집기로도 수정할 수 있지만, 스크립팅은 경량 프로그래밍에 가까우므로 개발용 편집기를 사용하는 것이 좋습니다. Atom, Sublime Text, VS Code 등 무엇이든 괜찮습니다. 아직 이런 도구가 없다면, 초반에는 간단한 스크립트만 다루니 윈도우 기본 메모장으로도 충분합니다.
참고로 필자는 HTML, CSS, 간단한 JS·PHP·Python 작업에는 여러 에디터를 골고루 쓰지만, AHK 스크립트를 편집할 때는 역시 대중적인 Notepad++로 돌아오게 됩니다.
특정 앱이나 창 지정하기
본격적으로 시작하기 전에, 스크립트를 적용할 프로그램부터 살펴보겠습니다.
오토핫키에서는 모든 앱과 윈도우 데스크톱 어디서든 작동하는 전역 스크립트를 만들 수 있지만, 특정 앱만 대상으로 지정하는 것도 가능합니다. 덕분에 같은 단축키라도 프로그램마다 서로 다른 동작을 하도록 설정할 수 있습니다.

새 스크립트 파일을 열면 몇 가지 기본 설정이 이미 입력되어 있습니다. 이 부분은 수정하지 말고, 그 아래에 코드를 추가하세요. 엔터를 한두 번 눌러 줄을 바꾼 뒤 다음 내용을 입력합니다.
#IfWinActive ahk_class Notepad #if
이 코드는 'IfWinActive' 이후에 오는 모든 명령이 노트패드 클래스(ahk_class Notepad)를 가진 창에서만 작동하도록 지정합니다. 그 뒤의 #If는 이 구간을 닫는 역할로, 이후의 명령은 더 이상 노트패드 창에 국한되지 않습니다.
Window Spy 알아보기
작성한 빈 스크립트를 실행하면 윈도우 트레이에 AHK 아이콘이 나타납니다. 아이콘을 오른쪽 버튼으로 누르고 팝업 메뉴에서 Window Spy를 선택하세요. 이제 화면의 다른 창을 클릭할 때마다 Window Spy가 해당 창의 정보를 보여줍니다.

가장 위쪽에서는 제목(title), 클래스(class), 실행 파일(executable)을 기준으로 창을 지정할 수 있는 다양한 방법을 확인할 수 있습니다. 예를 들어 파이어폭스를 실행하고 Window Spy가 켜진 상태에서 파이어폭스 창을 클릭해 보면, 실행 파일명이 'firefox.exe'임을 알 수 있습니다. 이제 앞서 작성한 스크립트의 노트패드 부분을 #IfWinActive ahk_exe firefox.exe로 바꿔 보세요. 다른 창도 같은 방식으로 지정할 수 있습니다. Window Spy로 제목, 클래스, 실행 파일 중 하나를 조사한 뒤 원하는 항목으로 타깃팅하면 됩니다.
- 제목 기준:
#IfWinActive뒤에 창 제목을 붙여 지정합니다. - 클래스 기준:
#IfWinActive ahk_class뒤에 Window Spy가 인식한 클래스명을 붙입니다. - 실행 파일 기준:
#IfWinActive ahk_exe뒤에 실행 파일명을 붙입니다. 이 경우 해당 프로그램의 모든 창이 대상이 되며, 특정 창 하나만 지정되지 않는다는 점에 유의하세요.
마우스 좌표 확인하기
Window Spy가 실행된 상태에서 'Mouse Position' 변수 그룹에 주목하세요. 여기에는 마우스의 정확한 위치가 표시됩니다.
- Absolute(절대 좌표): 전체 화면 해상도를 기준으로 한 위치를 나타냅니다.
- Relative(상대 좌표): 활성 창 안에서의 위치를 나타내며, 창이 화면의 어느 곳에 있든 영향을 받지 않습니다. 기본값이며 대부분의 경우 이 값을 사용하게 됩니다.
- Client(클라이언트 좌표): 상대 좌표와 비슷하지만 제목 표시줄이나 테두리 같은 창 장식 요소는 계산에서 제외됩니다.
마우스 움직임과 클릭 재현하기
이제 새 AHK 스크립트를 만들고 특정 창을 지정하는 방법은 익혔습니다. 그렇다면 앞서 본 마우스 좌표는 어떻게 활용할까요? Window Spy에서 읽은 X, Y 좌표로 마우스를 이동하려면 MouseMove, X, Y ;를 사용합니다. 이 코드는 마우스를 X, Y 위치로 옮겨 줍니다. 상대 좌표가 기본값이라는 점을 기억하세요.
또한 ; 문자 뒤에는 코드에 주석을 달 수 있습니다. 여러 줄 주석은 따옴표 없이 '/'로 시작해서 '/'로 끝냅니다.
마우스 이동만으로는 부족하겠죠? 클릭은 굳이 마우스를 미리 특정 위치로 옮길 필요 없이 다음과 같이 바로 실행할 수 있습니다.
Click, X, Y ;왼쪽 클릭, 또는... Click, right, X, Y ;오른쪽 클릭.

좌표를 입력하지 않으면 현재 마우스 커서가 있는 위치에서 클릭이 발생한다는 점도 참고하세요.
키보드 입력 재현하기
마지막으로 가장 중요한 요소인 SendKeys(키 전송) 명령입니다. 오토핫키에서 이 명령은 어떤 키 입력이든 재현하는 데 사용됩니다. 이를 활용하면 직접 키를 누른 것과 똑같이, 임의의 문자열을 어떤 프로그램에든 전송할 수 있습니다. 예를 들어 다음 코드는
sendkeys, Make Tech Easier
"Make Tech Easier"라는 문구를 이루는 키 입력을 전송하라고 오토핫키에 지시합니다. 일반 문자와 숫자는 그대로 쓰면 되고, 특수 키는 고유한 단축 코드가 있으며 대괄호로 감싸야 합니다. 대표적인 예는 다음과 같습니다.
- {Tab}
- {Shift}
- {Control} 또는 {Ctrl}
- {Alt}
- {F1 – F12}
- {LWin}{RWin} : 각각 왼쪽/오른쪽 윈도우 키
- {Enter}
- {Space}
- {Backspace}
- {Delete}
- {Up}{Down}{Left}{Right} : 방향키 위, 아래, 왼쪽, 오른쪽
- {Home}
- {End}
- {PgUp}{PgDown} : Page Up / Page Down
- {Volume_Up}{Volume_Down}{Volume_Mute} : 음량 조절 미디어 단축키
숫자를 활용하면 반복 입력도 시뮬레이션할 수 있습니다. 아래 코드는 활성 창에 스페이스바를 다섯 번 누른 것처럼 공백을 보낸 뒤, "Make Tech Easier"를 입력하고 Tab 키를 두 번, Enter 키를 한 번 누르는 동작을 재현합니다.
Send, {Space 5}Make Tech Easier{Tab 2}{Enter}
또한 오토핫키는 네 가지 기호를 수정자(modifier)로 정의하여, 활성 프로그램에 단축키 조합을 전송할 때 활용할 수 있습니다. 수정자는 바로 뒤에 오는 한 글자에만 적용되며 종류는 다음과 같습니다.
- ! : Alt
- + : Shift
- ^ : Control(Ctrl)
- # : 윈도우 키
예를 들어 다음 코드는 활성 창에 Ctrl + A(전체 선택)를 보낸 뒤, Ctrl + C(클립보드로 복사)를 전송합니다.
Send, ^A^C
첫 번째 실전 스크립트 만들기
지금까지 배운 내용이 실제로 어떻게 적용되는지 예제를 통해 확인해 보겠습니다. 단축키 하나로 검색 기능을 실행하는 스크립트를 만들어 볼 것입니다. 핫키를 누르면 마우스가 이동해 사이트의 검색 아이콘을 클릭하고, 클립보드에 있는 내용을 검색창에 입력한 후 Enter를 전송해 검색을 시작하는 방식입니다.

먼저 Window Spy로 확인해 보면, 1920 x 1080 해상도에서 파이어폭스 창이 최대화되었을 때 검색 아이콘의 좌표는 대략 X=1835, Y=135 근처입니다. 검색 아이콘이 픽셀 하나보다 크기 때문에 수치는 조금씩 달라질 수 있으며, X=1830, Y=140처럼 약간 벗어난 좌표라도 커서가 여전히 아이콘 위에 있다면 충분히 작동합니다. 이를 바탕으로 다음과 같이 작성할 수 있습니다.
#IfWinActive, ahk_exe firefox.exe ;파이어폭스(firefox.exe) 창에서만 활성화됩니다.
!+M:: ;Alt+Shift+M 조합을 누를 때마다 스크립트가 실행됩니다.
Click, 1830, 140
Sleep, 50 ;검색창이 화면에 나타날 때까지 짧은 딜레이를 줍니다.
Send, {Clipboard}{Enter} ;클립보드 내용을 검색창에 보내고 Enter를 눌러 검색을 시작합니다.
return ;핫키를 설정하는 이 스크립트 구간을 종료합니다.
#If ;특정 앱\창 지정을 해제합니다.
네, 정말 이렇게 간단합니다. 거의 평이한 영어 문장을 쓰듯 작성할 수 있죠. 그리고 잘 생각해 보면, 이 방식으로 컴퓨터에서 하는 거의 모든 작업을 자동화할 수 있습니다.
- 애플리케이션 다섯 개를 동시에 실행하는 동작이나 스트리트 파이터의 '하도켄' 필살기를 키 하나에 매핑하고 싶으신가요?
- 창의 특정 지점으로 마우스 커서를 옮겨 놓고 사람의 속도로는 불가능한 빠르기로 50번 클릭하고 싶으신가요?
- 거의 쓸 일 없는 Caps Lock 키를 마우스에 없는 휠 클릭(중간 클릭)으로 바꿔 활용하고 싶으신가요?
이 모든 것이 정확히 같은 방식으로 가능합니다! 매일 반복하는 작업들을 떠올리고, 하나하나의 단계로 분해한 뒤 각 단계를 오토핫키로 재현해 보세요. 컴퓨터 사용 방식이 획기적으로 간편해지고 생산성도 크게 향상될 것입니다. 이제 직접 자동화의 세계로 나아가 보세요!