상세 컨텐츠

본문 제목

[AHK] 사용 방법과 문법 - 1. Using the Program

IT이야기/AutoHotkey

by Rahs 2019. 8. 5. 09:00

본문

주의

본 문서는 AutoHotkey 1.1 버전을 대상으로 작성되었습니다.

AHK 개발환경이 갖춰진 상태를 전제로 작성된 문서입니다.

개발환경 준비 가이드가 필요하신 분들은 [AHK] 개발환경 준비하기를 참고해주세요.

우선 이 문서의 출처부터 명확히 밝히고 시작하겠습니다.

  1. 윈도우 바탕화면에서 마우스 우클릭 - 새로 만들기 - AutoHotkey Script를 선택해서 아무 이름의 AHK 문서를

    하나 생성합니다.

    설명상 편의를 위해 저는 sample.ahk로 생성했습니다.

  2. 생성된 .ahk 파일을 선택 후 마우스 우클릭하고 키보드 'E'를 눌러봅니다.

    Scite4AutoHotkey가 열리는 분들은 3번으로, 그렇지 않은 분들은 'Edit Script' 메뉴를 클릭하십니다.

  3. 아래와 같이 기본적인 내용만 입력된 파일이 에디터에서 열릴 것입니다.

    #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn ; Enable warnings to assist with detecting common errors.
    SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.

  4. 지금은 저게 중요한게 아닙니다. F1 키를 누르면 깔끔한 'AutoHotkey Help'라는 설명서가 따-악!

    그 외 방법으로 AutoHotkey를 설치하신 아래 경로의 도움말 파일을 직접 실행시키는 방법도 있습니다.

    (이게 훨씬 간단하구만..)

    C:/Program Files/AutoHotkey/AutoHotkey.chm

네, 바로 이 '도움말' 파일이 앞으로 AHK 머릿말을 달게 될 포스팅의 기본 뼈대 되시겠습니다.

방대하다면 방대한 분량의 도움말이 있습니다만 전부 영문으로 작성되어 있죠.

블로그 이름에는 조금 부끄럽지만 상당히 주관적으로 '필요하다'고 판단되는 부분들에 한해 번역본을 게재하고,

중간중간에 추가적인 예제 코드를 만들어서 소개하는 식으로 포스팅이 진행될 예정입니다.

시작합니다. Quick Reference 다 건너뛰고,

Usage and Syntax

본 포스팅의 제목이죠. 네, 사용 방법과 문법편입니다.

총 12편의 소주제로 이루어져있으며 본 문서에서는 그 중 첫번째, Using the Program에 대한 내용을 다룹니다.

Using the Program

AutoHotkey(이하 AHK)는 그 자체만으로는 아무런 동작도 하지 않습니다. 어떤 동작을 할지를 알려주는

'스크립트'라는 것이 필요한데요, 이 스크립트는 .ahk 확장자를 가지는, 순수 텍스트 파일입니다.

하나의 스크립트에서 하나의 단일 작업만 처리하고 프로그램이 종료되도록 만들 수도 있지만 사람의 욕심은

끝이 없는 법이라서 대개는 여러 개의 작업을 정의하고 각각의 단축키를 할당해서 단축키가 눌리면 해당되는

작업을 실행하도록 만들기 마련입니다.

이 내용만 보면 마치 단축키만을 위한 프로그램인 것처럼 보이기 쉽지만 그렇지 않습니다.

일단은 설명서에 나오는대로 예제 코드부터 볼까요?

#z::Run https://autohotkey.com  ; Win+Z를 누르면 autohotkey.com 페이지를 엽니다.

^!n:: ; Ctrl+Alt+N 키를 누르면 제목없음 - 메모장이라는 이름의 창이 존재하면 그 창을 활성화하고
if WinExist("제목없음 - 메모장") ; 아니면 메모장을 실행시킵니다.
  WinActivate
else
  Run Notepad
return

눈치채신 분들도 있으시겠지만 세미콜론이 AHK에선 주석을 의미합니다.

즉, ";"가 찍히면 그 뒤부터는 실행에 아무런 영향을 주지 않는다는 뜻입니다. 보통 예제에서처럼 직관적이지 않은

코드에 대한 부연 설명 등이 필요할 때 사용하게 됩니다. 앞으로 많이 보실거에요.

단축키 매핑에 대한 간략한 설명을 덧붙이자면:

# 문자는 키보드의 '윈도우'키를 의미합니다.

^ 문자는 키보드의 'Ctrl' 키를,

! 문자는 키보드의 'Alt' 키를, 그리고

+ 문자는 키보드의 'Shift' 키를 의미합니다.

상세한 내용은 List of Keys에서 확인이 가능하죠.

Table of Contents

Create a Script

스크립트 파일을 만드는 방법에는 몇 가지가 있습니다.

  • 메모장(또는 그 어떤 텍스트 파일 에디터라도 OK)에서 파일을 작성하고 확장자를 .ahk로 저장합니다.

    아스키 문자 외 문자 사용이 필요한 경우 UTF-8 with BOM encoding 형식으로 저장해야 합니다.

  • 바탕화면 또는 Explorer에서 빈 공간에서 마우스 우클릭 - 새로 만들기 - AutoHotkey Script를 클릭합니다.

Edit a Script

스크립트 파일을 편집하는 방법에도 몇 가지가 있네요.

  • .ahk 파일을 선택 후 마우스 우클릭 - Edit Script 메뉴를 클릭합니다.

  • 실행 중인 ahk 스크립트를 편집하고 싶을 경우, tray icon을 우클릭하여 Edit This Script 메뉴(이하 트레이 메뉴)를 클릭합니다.

실행 중인 스크립트를 편집한 경우, 재실행 또는 reload를 해야 변경 내용이 적용됩니다. 트레이 메뉴의 'Reload This Script' 메뉴를 클릭해서 reload 할 수 있습니다.

Run a Script

AutoHotkey가 설치된 PC에서는 아래와 같은 방법들로 스크립트를 실행할 수 있습니다:

  • 스크립트 파일 또는 스크립트 파일의 바로가기를 더블 클릭

  • Command line6 에서 AutoHotkey.exe에 실행할 스크립트 파일의 full path를 넘겨주기

    C:\Program Files\AutoHotkey>AutoHotkey.exe C:\sample.ahk
  • AutoHotkey가 작업 표시줄 또는 시작 메뉴에 고정되어 있다면, 가장 최근에 실행된 스크립트들이 AutoHotkey의 Jump list에 표시되는데, 이를 클릭해서 실행할 수도 있습니다.

대부분의 스크립트는 '실행 중'인 경우에만 작업을 실행합니다. 트레이 메뉴의 'Exit' 메뉴 또는 스크립트 내에서

'ExitApp' 명령어를 사용해서 스크립트를 종료할 수 있습니다. Windows 종료 시에는 스크립트도 강제로 종료되죠.

Windows 시작 시 스크립트를 자동으로 실행되게 만들고 싶다면 가장 빠른 방법은 스크립트 파일의 바로가기를

Startup 폴더7에 넣어두는 겁니다.

스크립트들은 AutoHotkey가 설치되지 않은 PC에서도 실행 가능하도록 compile 될 수 있으며,

이 경우 .ahk 파일을 통해 독립적으로 실행이 가능한 .exe형태의 파일을 생성할 수 있습니다.

Tray Icon

기본 설정대로라면 각각의 스크립트는 실행 시 트레이 영역에 작은 트레이 아이콘을 생성시킵니다.

초록색 바탕에 흰색 글씨로 영문자 H가 적힌 형태의 아이콘을 가지죠.

물론 나중에 원하는대로 바꿀 수 있습니다.

트레이 아이콘에 마우스 우클릭을 해보면 트레이 메뉴가 나타나는데 메뉴 명칭과 기능은 아래와 같습니다.

  • Open - Main window를 열어 보여줍니다.

  • Help - 도움말을 표시합니다.

  • Window Spy - 윈도우 창에 대해 다양한 정보를 획득할 수 있는 보조 프로그램을 실행합니다.

  • Reload This Script - 스크립트를 reload하여 변경 내용을 적용합니다.

  • Edit This Script - 스크립트 내용을 편집합니다.

  • Suspend Hotkeys - 스크립트에서 정의된 단축키 동작을 일시적으로 사용하지 않습니다.

  • Pause Script - 스크립트 동작을 일시 정지합니다.

  • Exit - 스크립트를 종료합니다.

트레이 아이콘을 더블 클릭하면 Main window가 나타나게 되고, 스크립트 내의 Menu 명령어를 통해 트레이 아이콘과 메뉴를 입맛대로 바꿀 수 있습니다. (a.k.a. 커스터마이징)

#NoTrayIcon 지시자를 이용해서 트레이 아이콘을 감출 수도 있습니다.

Main Window

스크립트의 Main window(이하 메인 윈도우)는 일반적으로는 잘 사용되지 않고, 스크립트를 실행시킨다고 해서

바로 보여지지도 않습니다만, 트레이 아이콘을 통해서, 혹은 추후 소개될 여러 명령어들에 의해 띄워질 수 있으며

스크립트를 디버깅하는데 제법 유용한 정보들을 표시해줍니다.

메시지 박스(Msgbox) 등 대화상자를 표시 중인 스크립트의 키보드 입력은 메인 윈도우에 기록되지 않습니다.

내장 변수(built-in variable) A_ScriptHwnd는 해당 스크립트 메인 윈도우의 고유 ID(HWND) 정보를 담고 있어요.

메인 윈도우의 제목은 #SingleInstance 지시자 및 reload 로직에서 스크립트를 특정할 수 있도록 해주는 역할을

하고 있습니다. 메인 윈도우의 제목을 변경 시, 위 기능들에 영향이 발생할 수 있으며 생성 시 자동으로 부여되는

창의 제목은 아래와 같습니다.

A_ScriptFullPath (A_IsCompiled ? "" : " - AutoHotkey v" A_AhkVersion)

C:/sample.ahk 스크립트가 C:/sample.exe파일로 컴파일된 상태라면 메인 윈도우의 이름은 C:/sample.exe

컴파일된 상태가 아니라면 C:/sample.ahk - AutoHotkey v 1.1.xxx..가 되겠습니다.

내장 변수와 3항 연산자(?)에 대한 이야기는 뒷쪽에서 다시 다루도록 하죠.

Command Line Usage

엇, 이건 Run a Script의 2번째 실행 방법으로 이미 설명된 내용과 Scripts (misc)에서 설명될 내용입니다.

Portability of AutoHotkey.exe

AutoHotkey.exe 파일만 있으면 그 어떤 .ahk 파일이라도 실행시킬 수 있습니다.

여차하면 AutoHotkey를 굳이 설치할 필요없이 AutoHotkey.exe 파일만 있으면 만사 ok라는!

AutoHotkey.exe 파일을 실행시킬 스크립트를 별도로 명시하지 않고 실행시키면 같은 경로에 위치한

AutoHotkey.ahk를 찾아서 실행시킵니다. AutoHotkey.exe 파일의 이름을 MyScript.exe로 바꾸고

실행 스크립트 명시 없이 실행시키면 같은 경로에 위치한 MyScript.ahk를 실행시키구요.

sample.ahk 파일을 끌어다가 AutoHotkey.exe 파일 위에 놓는다거나, Run a Script 설명의 두번째 예시처럼

실행파일 명을 exe파일로 전달하면 동일한 이름이 아닌 ahk 파일도 실행 가능합니다.


[1]  스크립트 생성하기
[2]  스크립트 편집하기
[3]  스크립트 실행하기
[4]  윈도우 작업표시줄 우측 시간이 표시되는 부분을 트레이라고 하는데 여기 표시되는 작은 아이콘을 말함
[5]  AutoHotkey.exe의 휴대성
[6]  윈도우 + r 키를 누른 다음 'cmd'를 입력 후 '실행'을 클릭하면 명령 프롬프트가 실행됩니다.
[7]  윈도우 + r 키를 누른 다음 'shell:startup'을 입력하면 Windows 시작 프로그램 폴더가 explorer에서 열립니다.

End of Document


관련글 더보기

댓글 영역