AutoHotkey는 단순한 키보드와 마우스 자동화 도구를 넘어, Windows 애플리케이션의 창과 그 내부 컨트롤을 직접 조작하는 강력한 기능을 제공합니다. 이 글에서는 AutoHotkey를 활용해 창 컨트롤을 효과적으로 다루는 방법을 탐구하며, 실전 예시와 팁을 통해 여러분의 자동화 스킬을 한 단계 업그레이드하는 데 초점을 맞춥니다. 초보자부터 고급 사용자까지, 이 가이드를 따라하면 복잡한 워크플로를 간단한 스크립트로 자동화할 수 있을 거예요.
컨트롤 이해하기: UI 요소의 구성
모든 Windows 애플리케이션 창은 버튼, 텍스트 상자, 드롭다운 메뉴 등 다양한 사용자 인터페이스(UI) 요소로 이루어져 있습니다. AutoHotkey에서 이들을 '컨트롤(Control)'이라고 부르며, 각 컨트롤은 고유한 식별자(예: ClassNN)를 가집니다. 이 식별자를 통해 스크립트가 정확히 타겟팅할 수 있어요.
컨트롤을 식별하는 데 핵심 도구는 AutoHotkey와 함께 제공되는 Window Spy입니다. 이 도구를 실행하면 마우스를 올린 창의 컨트롤 정보를 실시간으로 확인할 수 있습니다. 예를 들어, 메모장의 텍스트 영역은 Edit1로 표시될 수 있어요.
일반적인 컨트롤 유형
- 버튼(Button): 클릭으로 작업을 트리거합니다. (예: '저장' 버튼)
- 편집 필드(Edit): 텍스트 입력 공간입니다. (예: 검색 바)
- 콤보 상자(ComboBox): 드롭다운으로 선택지를 제공합니다.
- 체크 상자(CheckBox) / 라디오 버튼(Radio): 옵션 선택을 위한 토글 요소입니다.
- 리스트 뷰(ListView): 목록 아이템을 표시하고 선택합니다.
- 슬라이더(Slider): 값 조정을 위한 슬라이드 바입니다.
이 컨트롤들을 파악하는 게 자동화의 기반입니다. Window Spy를 자주 사용해 보세요 – 처음엔 낯설지만, 곧 필수 도구가 될 거예요.
AutoHotkey를 이용한 컨트롤 상호 작용 방법
AutoHotkey는 컨트롤을 위한 전용 명령어를 제공합니다. 창이 포커스되지 않은 상태(백그라운드)에서도 동작하는 점이 큰 장점이에요. 아래에서 주요 명령어를 예시와 함께 살펴보죠.
1. ControlSend: 포커스 없이 키 입력 보내기
창이 활성화되지 않아도 특정 컨트롤에 텍스트나 키를 전송합니다. 멀티태스킹 시 유용해요.
예시 스크립트 (메모장에 텍스트 입력):
#NoEnv ; 권장 설정
SendMode Input ; 권장 설정
ControlSend, Edit1, Hello World!, ahk_class Notepad ; 메모장의 Edit1에 텍스트 전송
이 코드는 메모장이 백그라운드에 있어도 "Hello World!"를 입력합니다. ahk_class는 창의 클래스 이름으로, Window Spy로 확인하세요.
2. ControlClick: 마우스 클릭 시뮬레이션
버튼 클릭, 체크박스 토글 등 마우스 동작을 자동화합니다. 좌클릭 외에 우클릭이나 더블클릭도 지원해요.
예시 스크립트 (계산기 버튼 클릭):
ControlClick, Button1, ahk_class CalcFrame ; 계산기의 첫 번째 버튼 클릭
이 스크립트로 계산기 앱의 '1' 버튼을 클릭할 수 있습니다. 옵션으로 {Right}를 추가해 우클릭도 가능해요.
3. ControlGet: 컨트롤 정보 가져오기
컨트롤의 텍스트, 상태, 위치 등을 조회합니다. 조건부 자동화(예: 값 확인 후 동작)에 필수적입니다.
예시 스크립트 (편집 필드 내용 출력):
ControlGet, outputVar, Text,, Edit1, ahk_class Notepad
MsgBox, %outputVar% ; 변수 내용을 메시지 박스로 표시
이 코드는 메모장의 Edit1 내용을 변수에 저장하고 출력합니다. 체크박스 상태는 ControlGet, IsChecked, Checked,, Check1처럼 사용하세요.
4. ControlSetText: 컨트롤 내용 변경하기
편집 필드나 라벨의 텍스트를 직접 수정합니다. 반복 입력 작업을 줄여줍니다.
예시 스크립트 (텍스트 필드 업데이트):
ControlSetText, Edit1, New Text Here!, ahk_class MyApp
이 명령으로 앱의 입력 필드를 즉시 "New Text Here!"로 변경할 수 있어요. 기존 내용을 지우지 않고 덮어쓰니 주의하세요.
5. ControlMove / ControlResize: 컨트롤 동적 조정
컨트롤의 위치나 크기를 변경합니다. UI 커스터마이징이나 테스트 시나리오에 적합합니다.
예시 스크립트 (버튼 이동 및 크기 조정):
ControlMove, Button2, 100, 100, 50, 30, ahk_class MyApp ; x=100, y=100으로 이동, 너비=50, 높이=30으로 조정
이 코드는 MyApp 창의 Button2를 지정 위치로 옮기고 크기를 조정합니다. 고급 사용자라면 창 레이아웃을 동적으로 재배치할 수 있어요.
실제 적용 시나리오: Excel 자동화 예시
Excel에서 셀 입력을 자주 한다면, AutoHotkey가 큰 도움이 됩니다. 아래 스크립트는 Excel을 열고 A1 셀에 "Hello"를 입력하는 과정을 자동화합니다. (Excel이 설치되어 있다고 가정)
전체 스크립트:
#NoEnv
SendMode Input
Run, excel.exe ; Excel 실행
WinWaitActive, ahk_class XLMAIN ; Excel 창 활성화 대기 (제목이 변할 수 있으니 클래스 사용)
Sleep, 1000 ; 로딩 시간 여유
; F5로 '이동' 대화상자 열기
ControlSend, , {F5}, ahk_class XLMAIN
Sleep, 500
; '이동' 대화상자의 Edit1에 A1 입력 후 Enter
ControlSend, Edit1, A1{Enter}, ahk_class #32770 ; #32770은 대화상자 클래스
Sleep, 500
; A1 셀에 Hello 입력 후 Enter
ControlSend, , Hello{Enter}, ahk_class XLMAIN
MsgBox, Excel 자동화 완료! A1 셀에 'Hello' 입력됨.
이 스크립트는 수동 입력 없이 전체 과정을 처리합니다. 실제로 사용 시 Sleep 시간을 조정하고, 오류 처리를 추가하세요 (예: WinExist로 창 확인).
결론: 자동화의 새로운 지평 열기
AutoHotkey의 창 컨트롤 기능을 마스터하면, 단순 반복을 넘어 복잡한 애플리케이션 워크플로를 자유자재로 제어할 수 있습니다. ControlSend로 백그라운드 입력, ControlClick으로 클릭 자동화, ControlGet으로 상태 확인 등 핵심 명령어를 익히면 생산성이 폭발적으로 증가할 거예요. 지금 바로 Window Spy를 열고 여러분의 앱을 분석해 보세요. 작은 스크립트부터 시작하면, 곧 자동화 전문가가 될 수 있습니다!
'ETC > Auto Hotkey' 카테고리의 다른 글
| AutoHotkey 스크립트의 견고함을 높이는 비법: Try-Catch 블록 마스터하기 (0) | 2025.10.27 |
|---|---|
| AutoHotkey로 윈도우 상호작용 마스터하기: 자동화의 핵심! (0) | 2025.10.27 |
| 오토핫키(AHK)로 마스터하는 창 관리: 자동화의 핵심 기술 (0) | 2025.10.27 |
| 오토핫키: 클립보드와 파일 작업을 통한 자동화의 마법! (0) | 2025.10.27 |
| 오토핫키(AutoHotkey) 완전 정복: 파일과 클립보드 활용으로 자동화 마스터 되기! (0) | 2025.10.27 |