이번 포스팅에서는 오토핫키 사용법 세번째 글로 AutoHotkey 조건문과 함수, 핫키 및 핫스트링 설정과 마우스 이벤트 처리에 대해 정리해보았습니다.
참고로 오토핫키 관련 글은 아래와 같이 구성하였습니다.
오토핫키 사용법 (1) 다운로드 설치 및 대시보드 구성, 기본 ahk 파일 실행 방법
오토핫키 사용법 (2) 변수 선언 및 send loop sleep run msgbox 기본 명령어 사용법
오토핫키 사용법 (3) 조건문, 핫키 및 핫스트링 설정, 마우스 이벤트 (이번 포스팅)
이번 글에서는 AutoHotkey에서 조건문(If, Else)과 함수(Function)를 사용하여 작업을 제어하는 방법, 특정 키 조합을 눌렀을 때 작업을 실행하게 하는 핫키(Hotkey)와 지정한 문자열을 입력할 때 자동으로 변환되는 핫스트링(Hotstring) 설정을 다뤄보았습니다. 또한, 현재 시간을 출력하는 방법을 배우면서, AutoHotkey의 유용한 기능 중 하나인 FormatTime 명령어를 통해 날짜와 시간을 자동으로 입력하는 법도 알아볼 것입니다.
강좌의 마지막에는 마우스 이벤트 처리와 관련된 기능인 MouseMove와 Click 명령어도 다룰 예정입니다. 이 명령어들은 마우스를 특정 위치로 이동시키고 클릭하는 기능을 제공해, 사용자 개입 없이도 정해진 위치에서 작업을 수행하게 만들어 줍니다.
이번 포스팅에서는 AutoHotkey 조건문과 함수, 핫키 및 핫스트링 설정과 마우스 이벤트 처리에 대해 정리해보았습니다.
AutoHotkey 조건문과 함수 활용하기
AutoHotkey에서 조건문(If, Else)을 사용하면 특정 조건에 따라 다르게 동작하도록 설정할 수 있고, 함수(Function)를 사용하면 자주 사용하는 코드 블록을 묶어 재사용할 수 있습니다. 이를 통해 코드를 효율적으로 관리하고 가독성을 높일 수 있습니다.
예제 1-1: 조건문을 사용해 특정 키 조합에 따라 다른 작업 수행하기
이 예제에서는 Ctrl + Alt + 1 키를 누르면 “IT매뉴얼에 오신 것을 환영합니다!” 메시지가, Ctrl + Alt + 2 키를 누르면 “AutoHotkey 강좌가 곧 시작됩니다.” 메시지가 출력됩니다.
^!1:: ; Ctrl + Alt + 1이 눌렸을 때 실행될 코드
If (A_TimeSincePriorHotkey < 1000) ; 이전 핫키 입력 후 1초 이내에 눌렸는지 확인
{
MsgBox, IT매뉴얼에 오신 것을 환영합니다!
}
else
{
MsgBox, AutoHotkey에 대해 더 배우고 싶다면 IT매뉴얼(itmanual.net)을 참고하세요.
}
return
^!2:: ; Ctrl + Alt + 2이 눌렸을 때 실행될 코드
MsgBox, AutoHotkey 강좌가 곧 시작됩니다.
return
이 예제에서는 특정 키 조합이 눌렸을 때 조건에 따라 다른 메시지를 표시하는 AutoHotkey 스크립트입니다. 사용된 주요 명령어와 코드 구조를 단계별로 설명하겠습니다.
- ^!1::와 ^!2:::
- ^는 Ctrl 키, !는 Alt 키를 나타냅니다. 따라서 ^!1는 Ctrl + Alt + 1을 의미하고, ^!2는 Ctrl + Alt + 2를 뜻합니다.
- 이 핫키가 눌리면 바로 다음에 있는 코드 블록이 실행됩니다.
- If (A_TimeSincePriorHotkey < 1000):
- If 문은 조건문으로, 특정 조건이 참일 때만 그 아래의 코드를 실행합니다.
- A_TimeSincePriorHotkey는 이전에 누른 핫키 이후로 경과된 시간을 밀리초 단위로 나타내는 내장 변수입니다.
- 예를 들어, A_TimeSincePriorHotkey < 1000은 이전 핫키 입력 후 1초(1000밀리초) 이내에 다시 핫키를 눌렀는지 확인하는 조건입니다.
- Else:
- Else는 If 조건문이 참이 아닐 때(거짓일 때) 실행되는 블록입니다.
- If 조건이 거짓인 경우 두 번째 MsgBox가 실행되며, 해당 메시지를 보여줍니다.
- Return:
- Return은 현재 코드 블록을 종료하는 역할을 합니다. 핫키 코드에서
Return
을 만나면 더 이상의 코드가 실행되지 않고 해당 블록이 종료됩니다.
- Return은 현재 코드 블록을 종료하는 역할을 합니다. 핫키 코드에서
예제 1-2: 함수로 코드 블록을 묶어 가독성 높이기
반복적으로 사용할 수 있는 코드는 함수로 만들어 놓으면 코드 관리가 쉬워집니다. 이 예제에서는 “안녕하세요!” 메시지를 표시하는 함수와 “IT매뉴얼을 방문하세요” 메시지를 표시하는 함수를 작성합니다.
SayHello() { ; SayHello 함수 정의
MsgBox, 안녕하세요! IT매뉴얼(itmanual.net)에 오신 것을 환영합니다!
}
ShowManualInfo() { ; ShowManualInfo 함수 정의
MsgBox, IT매뉴얼을 방문하세요!
}
^!h:: ; Ctrl + Alt + H로 SayHello 함수 호출
SayHello()
return
^!i:: ; Ctrl + Alt + I로 ShowManualInfo 함수 호출
ShowManualInfo()
return
- SayHello(): “안녕하세요! IT매뉴얼에 오신 것을 환영합니다!” 메시지를 표시하는 함수입니다.
- ShowManualInfo(): “IT매뉴얼을 방문하세요” 메시지를 표시하는 함수입니다.
- ^!h::, ^!i::: 각각 Ctrl + Alt + H, Ctrl + Alt + I 핫키를 정의하여 함수를 호출합니다. 핫키를 누르면 각 함수가 호출되어 메시지 박스가 나타납니다.
예제 1-3: 사용자 입력에 따라 다른 메시지 표시하기
이 예제에서는 InputBox를 통해 사용자 입력을 받고, 입력 값에 따라 다른 메시지를 표시합니다.
InputBox, user_input, 질문, IT매뉴얼에 대해 궁금한 점을 입력하세요.
If (user_input = "AutoHotkey") ; 사용자가 입력한 내용이 "AutoHotkey"인지 확인
{
MsgBox, AutoHotkey 강좌는 IT매뉴얼에서 확인하세요.
}
else
{
MsgBox, 감사합니다. 입력하신 내용은 %user_input%입니다.
}
return
- InputBox, [변수 이름], [제목], [메시지]: InputBox는 사용자에게 입력창을 표시하고, 입력된 값을 user_input 변수에 저장합니다.
- If (user_input = “AutoHotkey”): 입력된 값이 “AutoHotkey”인지 확인하여 조건에 따라 다른 메시지를 표시합니다.
AutoHotkey 핫키와 핫스트링 설정
AutoHotkey의 핫키는 특정 키 조합을 눌렀을 때 원하는 작업을 수행하도록 설정할 수 있고, 핫스트링은 특정 문자열을 입력하면 자동으로 다른 문자열로 변환되는 기능을 제공합니다.
예제 2-1: 핫키를 사용해 프로그램 실행하기
이 예제에서는 Ctrl + Alt + Q 키 조합으로 메모장을 실행합니다.
^!q:: ; Ctrl + Alt + Q가 눌리면 실행
Run, notepad.exe ; 메모장을 실행
return
- ^!q::: Ctrl + Alt + Q가 눌렸을 때 실행됩니다.
- Run, [프로그램 경로]: Run 명령어는 프로그램을 실행합니다. 여기서는 메모장을 실행하도록 설정했습니다.
예제 2-2: 핫스트링으로 이메일 주소 자동 입력하기
핫스트링을 사용해 “itmail”을 입력하면 자동으로 이메일 주소가 입력되도록 설정합니다.
::itmail::itmanual@itmanual.net
- ::[단어]::[대체 텍스트]: 특정 단어(여기서는 “itmail”)를 입력하면 자동으로 대체 텍스트(“itmanual@itmanual.net”)로 변환됩니다. 자주 사용하는 문구나 이메일 주소를 설정해두면 편리하게 활용할 수 있습니다.
예제 2-3: 핫키로 메모장에 현재 시간 입력하기
Ctrl + Alt + T 키를 누르면 현재 시간을 입력하도록 설정해 보겠습니다.
^!t:: ; Ctrl + Alt + T가 눌리면 실행
FormatTime, current_time,, yyyy-MM-dd HH:mm:ss ; 현재 시간을 특정 형식으로 변수에 저장
Send, %current_time% ; 저장된 시간을 입력
return
- FormatTime, [변수], [시간], [형식]: FormatTime은 특정 형식으로 현재 시간을 저장합니다. 여기서는 “yyyy-MM-dd HH:mm:ss” 형식으로 날짜와 시간을 current_time 변수에 저장합니다.
- Send, %변수%: Send 명령어를 사용해 current_time 변수를 입력합니다.
마우스 이벤트 처리: MouseMove와 Click 사용하기
마우스 이벤트를 통해 특정 위치로 마우스를 이동시키거나 클릭하는 작업을 수행할 수 있습니다.
예제: 마우스를 특정 위치로 이동하고 클릭하기
이 예제에서는 마우스를 (500, 500) 위치로 이동시킨 후 클릭하는 예제를 만들어보겠습니다.
^!m:: ; Ctrl + Alt + M을 누르면 실행
MouseMove, 500, 500, 50 ; 마우스를 (500, 500) 위치로 50ms 속도로 이동
Sleep, 500 ; 0.5초 대기
Click ; 현재 위치에서 클릭
return
- MouseMove, X, Y, 속도: 마우스를 (X, Y) 좌표로 이동시키며, 마지막 인수는 이동 속도를 설정합니다. 속도 값이 낮을수록 마우스 이동이 더 느리게 보입니다.
- Sleep, 시간(ms): 마우스 이동 후 500ms 동안 대기하여 클릭 전에 잠시 멈추도록 설정합니다.
- Click: 현재 마우스 위치에서 클릭을 수행합니다.
참고로 오토핫키 공홈에서 AutoHotkey mousemove 등 마우스 이벤트 문법 및 사용 예시에 대해 상세하게 설명하고 있습니다.
이번 글에서는 AutoHotkey 조건문과 함수, AutoHotkey 핫키와 핫스트링 설정, 그리고 마우스 이동과 클릭 명령어를 통해 AutoHotkey 스크립트를 구성하는 다양한 방법을 정리해보았습니다.
앞선 포스팅에서 정리한 코딩/프로그래밍 관련 글은 아래와 같습니다.
내 웹사이트 블로그에 ChatGPT 데이터 수집 차단 방법 1분 해결 (GPTBot, OAI-SearchBot, ChatGPT-User 차단)