이번 포스팅에서는 오토핫키 사용법에 대한 두번째 글로 기본적인 변수 선언과 사용법과 더불어 가장 기본적으로 많이 사용되는 AutoHotkey send loop sleep msgbox 등의 사용법에 대해 알아보았습니다.
AutoHotkey는 간단한 스크립트 언어로, Windows 환경에서 반복 작업을 자동화할 수 있는 강력한 도구입니다. 특히 키보드와 마우스를 자동으로 제어할 수 있어 효율적인 작업 수행이 가능합니다. 앞선 포스팅에서는 AutoHotkey 다운로드 및 버전 선택과 설치 방법과 더불어 기본적인 대쉬보드 구성과 ahk 파일 실행 및 종료 방법에 대해 알아보았습니다.
AutoHotkey를 통해 키보드 단축키와 자동 문구 입력 기능을 구현하려면 변수 선언과 기본 명령어 사용법을 이해하는 것이 필수적입니다. 이를 통해 원하는 작업을 정확하게 자동화하고, 작업의 흐름을 효과적으로 제어할 수 있습니다.
AutoHotkey에서 가장 기본적으로 많이 사용되는 명령어는 Send, Loop, Sleep, MsgBox 등이 있습니다.
- Send는 키보드 입력을 자동으로 수행하게 해주는 명령어로, 지정한 텍스트를 입력하거나 특정 키 조합을 입력할 수 있습니다.
- Loop는 반복문을 생성하여 동일한 작업을 여러 번 수행할 수 있게 해주는 명령어로, 반복 작업이 많을 때 아주 유용합니다.
- Sleep는 특정 작업을 잠시 멈추는 역할을 합니다. 작업 사이에 지연을 주어 안정성을 높이는 데 사용됩니다.
- MsgBox는 팝업 창을 띄워 메시지를 표시하는 명령어로, 스크립트가 정상적으로 동작하는지 확인하거나 특정 이벤트가 발생했음을 알릴 때 자주 사용됩니다.
이러한 기본 명령어는 오토핫키에서 자주 사용되는 핫키와 핫스트링을 효과적으로 작성하는 데 반드시 필요합니다. 각 명령어의 기초적인 사용법을 잘 익혀두면 AutoHotkey로 스크립트를 작성하는 과정이 훨씬 수월해지며, 이후 복잡한 자동화 작업도 쉽게 구성할 수 있게 됩니다.
이번 포스팅에서는 우선 오토핫키의 변수 선언과 사용 방법에 대해 정리해본 다음, AutoHotkey send / Loop / Sleep 명령어에 대해 알아보고 이를 종합적으로 메모장에 입력하는 예시로 정리해보았습니다.
변수 선언과 사용 (:= 및 MsgBox)
변수는 데이터를 저장하고 여러 곳에서 재사용할 수 있는 이름이 지정된 저장 공간입니다. AutoHotkey에서는 :=
연산자를 통해 변수를 선언하고 값을 할당합니다.
예를 들어, 다음과 같이 name 변수에 값을 저장하고, AutoHotkey MsgBox 명령어를 통해 그 값을 화면에 출력할 수 있습니다.
name := "IT매뉴얼" ; name 변수에 "IT매뉴얼" 값을 할당
MsgBox, % "환영합니다, " name "에 오신 것을 환영합니다!"
- := 연산자는 변수를 선언할 때 사용합니다.
- AutoHotkey MsgBox는 팝업 창을 띄워 변수의 값을 확인할 때 유용합니다. 여기서 % 기호를 통해 name 변수의 값을 불러올 수 있습니다.
- 위 코드의 경우, name 변수에 “IT매뉴얼”이 할당되므로 메시지 박스에는 “환영합니다, IT매뉴얼에 오신 것을 환영합니다!”가 표시됩니다.
:= 와 = 차이는?
:=는 AutoHotkey에서 표현식 할당을 위해 사용되며, 연산이나 문자열 결합을 할 수 있어 계산 결과나 결합된 텍스트를 변수에 저장할 때 유용합니다. 예를 들어, 숫자 덧셈이나 여러 문자열을 합치는 작업에 적합합니다.
=는 단순 할당을 수행하며, 계산 없이 입력한 텍스트 그대로를 변수에 저장하는 용도로 사용됩니다. 따라서 :=는 더 복잡한 할당에, =는 단순히 텍스트를 저장할 때 적합합니다.
처음에는 그냥 := 를 중심으로 사용하는 것을 추천합니다.
텍스트 입력: AutoHotkey Send
AutoHotkey Send 명령어는 키보드 입력을 자동으로 수행합니다. 반복적으로 타이핑해야 하는 작업을 자동화할 때 유용합니다.
예를 들어, 다음과 같이 Send 명령어를 사용하여 “IT매뉴얼에 오신 것을 환영합니다”와 같은 문장을 입력할 수 있습니다.
Send, IT매뉴얼에 오신 것을 환영합니다.{Enter}
- {Enter}는 Enter 키를 의미합니다. 이외에도 {Tab}, {Space} 등 특수 키를 중괄호 안에 넣어 사용할 수 있습니다.
- Send 명령어는 여러 키 조합을 한 번에 입력하는 것도 가능합니다. 예를 들어 Send, ^c는 Ctrl + C 조합을 의미하여 복사를 자동화할 수 있습니다.
참고로 오토핫키 공홈에서 send 명령어에 대해서 상세하게 안내하고 있습니다.
반복 작업: AutoHotkey Loop
AutoHotkey Loop 명령어는 특정 작업을 여러 번 반복할 때 사용됩니다. 반복 횟수를 지정할 수 있으며, 반복문 내에서 현재 반복 횟수를 확인할 수도 있습니다.
Loop, 5 ; 5회 반복
{
MsgBox, % "현재 반복 횟수는 " A_Index "입니다."
Sleep, 500 ; 0.5초 대기
}
- Loop, 5는 해당 블록 내의 코드를 5번 반복합니다.
- A_Index는 현재 반복 횟수를 나타내는 AutoHotkey 내장 변수입니다. 첫 번째 반복에서는 1, 두 번째 반복에서는 2를 반환합니다.
- 각 반복 사이에 Sleep, 500을 추가하여 0.5초 동안 대기할 수 있습니다.
대기 시간 설정: AutoHotkey Sleep
AutoHotkey Sleep은 스크립트의 진행을 잠시 멈추는 명령어로, 밀리초(ms) 단위로 대기 시간을 설정할 수 있습니다. 대기 시간이 필요한 작업이나 화면이 로드될 때까지 잠시 멈추고 싶을 때 사용합니다.
Sleep, 1000 ; 1초 대기
- Sleep, 1000은 1000 밀리초(1초) 동안 대기하는 것을 의미합니다. 예를 들어 페이지 로딩이나 창 활성화 전 잠시 대기해야 하는 경우 유용하게 사용됩니다.
- Sleep 명령어를 통해 스크립트의 흐름을 조정하여 특정 단계가 완료될 때까지 기다리게 할 수 있습니다.
창 활성화 및 대기: WinWaitActive, WinActivate
AutoHotkey 스크립트에서 특정 창이 열리거나 활성화될 때까지 기다리려면 WinWaitActive 명령어를 사용합니다. WinActivate는 지정된 창을 활성화합니다.
Run, notepad.exe
WinWaitActive, ahk_class Notepad ; 메모장이 열릴 때까지 대기
WinActivate ; 메모장을 활성 창으로 설정
- Run, notepad.exe는 메모장을 실행합니다.
- WinWaitActive, ahk_class Notepad는 메모장이 열리고 활성화될 때까지 기다립니다. ahk_class Notepad는 Windows에서 메모장을 식별하는 클래스 이름입니다.
- WinActivate는 메모장을 활성화하여 포커스를 맞추는 역할을 합니다. 이 명령어를 통해
Send
와 같은 입력 명령어가 올바른 창에서 동작하도록 합니다.
ahk_class Notepad는 Windows 운영 체제에서 메모장 프로그램을 고유하게 식별하기 위해 사용하는 클래스 이름입니다. Windows에서 각 창(프로그램)은 고유한 클래스 이름을 가지며, 이를 통해 특정 창을 다른 창과 구분할 수 있습니다.
예제: 메모장에 텍스트 입력하기
이 예제는 AutoHotkey를 이용해 메모장을 열고, “IT매뉴얼에 오신 것을 환영합니다”라는 텍스트를 자동으로 입력하는 방법을 보여줍니다.
; 메모장 열기
Run, notepad.exe
WinWaitActive, ahk_class Notepad ; 메모장이 열릴 때까지 대기
; 포커스를 확실히 메모장에 맞추기
Sleep, 300 ; 메모장이 로드될 시간을 주기 위해 추가
WinActivate ; 포커스를 활성 창(메모장)에 맞춤
Sleep, 300 ; 추가 대기 시간
; 텍스트 입력
Send, IT매뉴얼에 오신 것을 환영합니다.{Enter}
Sleep, 300 ; 각 단계마다 대기 시간 추가
Send, AUTOHOTKEY 예제입니다.{Enter}
Sleep, 300
Send, 이 예제에서는 메모장에 텍스트를 자동으로 입력합니다.
이 코드는 메모장을 열고, 포커스를 맞춘 후, 각 단계마다 대기 시간을 넣어 “IT매뉴얼에 오신 것을 환영합니다” 등의 텍스트를 입력하는 예제입니다.
참고로 AutoHotkey에서 ;는 주석(comment)을 나타냅니다. 주석은 코드에 대한 설명이나 메모를 추가할 때 사용하며, 스크립트를 실행할 때 무시됩니다. 코드 앞에 ;
를 붙이면 그 뒤의 모든 텍스트가 주석으로 인식되어, 코드에 영향을 미치지 않고 개발자에게만 참고용으로 표시됩니다.
웹 자동화: Chrome 열기와 텍스트 입력
AutoHotkey는 Run 명령어로 웹 브라우저를 열고, Send 명령어를 통해 검색어를 입력할 수 있습니다. 아래는 Chrome을 실행하고 Google에서 “IT매뉴얼”을 검색하는 예제입니다.
; Chrome 경로로 Google 열기
Run, "C:\Program Files\Google\Chrome\Application\chrome.exe" "https://www.google.com"
WinWaitActive, ahk_exe chrome.exe
Sleep, 1000 ; 페이지 로딩 대기
; 검색어 입력 및 검색
Send, IT매뉴얼
Sleep, 500
Send, {Enter} ; 엔터를 눌러 검색
Exit
- Run 명령어에 Chrome의 전체 경로를 지정해 Google 페이지를 엽니다.
- WinWaitActive, ahk_exe chrome.exe로 Chrome이 활성화될 때까지 기다립니다.
- Send를 사용해 검색어를 입력하고, {Enter}를 눌러 검색을 실행합니다.
이번 포스팅에서는 우선 오토핫키의 변수 선언과 사용 방법에 대해 정리해본 다음, AutoHotkey send / Loop / Sleep 명령어에 대해 알아보고 이를 종합적으로 메모장에 입력하는 예시로 정리해보았습니다.