ETC/Auto Hotkey

AutoHotkey로 윈도우를 자유자재로! 스크립팅 전문가가 되는 길

shimdh 2025. 10. 28. 10:33
728x90

안녕하세요, 생산성 해커 여러분! 컴퓨터 앞에서 하루 종일 일하다 보면, 반복되는 윈도우 조작이 얼마나 짜증 나는지 아시죠? 마우스를 클릭하고, 키보드를 두드리며, 불필요한 창을 닫아야 하는 그 시간들... 오늘은 그런 고통을 끝내줄 마법 같은 도구, AutoHotkey를 소개할게요. AutoHotkey는 단순한 매크로 도구를 넘어, 시스템의 윈도우와 프로세스를 깊이 있게 제어하고 상호작용할 수 있는 강력한 자동화 도구입니다. 이 글에서는 AutoHotkey를 활용하여 윈도우 관리를 마스터하고, 여러분의 작업 흐름을 혁신적으로 개선할 수 있는 고급 스크립팅 기술을 심층적으로 다루고자 합니다. 윈도우 식별부터 상태 변경, 키 입력 전송, 위치 조작, 그리고 닫기 및 숨기기까지, AutoHotkey가 제공하는 무궁무진한 가능성을 함께 탐험해 봅시다.

728x90

왜 윈도우 관리가 중요한가요?

일상적인 컴퓨터 사용에서 우리는 수많은 애플리케이션 윈도우를 열고 닫으며 작업합니다. 이러한 반복적인 수동 작업은 시간 소모적이며 생산성을 저해할 수 있습니다. AutoHotkey를 통해 윈도우를 자동화하고 제어함으로써, 여러분은 다음과 같은 이점을 얻을 수 있습니다.

  • 생산성 향상: 반복적인 윈도우 조작을 자동화하여 시간을 절약하고 핵심 업무에 집중할 수 있습니다. 예를 들어, 매일 아침 이메일 클라이언트를 자동으로 열고 위치를 조정하는 스크립트 하나로 5분을 아낄 수 있어요!
  • 작업 효율성 증대: 백그라운드에서 특정 윈도우에 명령을 보내거나, 불필요한 윈도우를 자동으로 정리하여 작업 환경을 최적화할 수 있습니다. 다중 모니터 사용자라면 특히 빛을 발합니다.
  • 사용자 경험 개선: 스크립트를 통해 애플리케이션을 자동으로 정렬하거나, 필요한 윈도우를 즉시 활성화하는 등 더욱 매끄러운 컴퓨터 사용 환경을 구축할 수 있습니다. 마치 AI 비서가 컴퓨터를 대신 관리해주는 기분!

이러한 이점은 개발자, 디자이너, 사무직 종사자 누구에게나 적용 가능합니다. AutoHotkey는 무료로 다운로드할 수 있으니, 공식 사이트에서 바로 시작해 보세요.

AutoHotkey 윈도우 관리의 핵심 개념

AutoHotkey가 윈도우를 다루는 방식은 몇 가지 핵심 개념에 기반합니다. 이를 이해하는 것이 고급 스크립팅의 첫걸음입니다. 아래에서 하나씩 자세히 풀어보겠습니다.

1. 윈도우 식별: 모든 윈도우에는 '이름'이 있다

모든 윈도우는 고유한 식별자를 가지고 있습니다. AutoHotkey는 이 식별자를 사용하여 특정 윈도우를 찾아내고 조작합니다. 주요 식별 방법은 다음과 같습니다:

  • 제목(Title): 윈도우 상단에 표시되는 텍스트입니다. 가장 직관적인 식별 방법입니다. 예: "제목: 미확인 문서 - 메모장".
  • 클래스 이름(Class Name): 윈도우가 속한 애플리케이션의 내부적인 식별자입니다. 예를 들어, 메모장은 ahk_class Notepad와 같은 클래스 이름을 가집니다.
  • 핸들(HWND): 윈도우에 할당된 고유한 숫자 값입니다. 숨겨진 윈도우나 제목이 없는 윈도우를 다룰 때 유용합니다.

WinGet 명령어는 이러한 속성을 검색하고 윈도우 목록을 가져오는 데 사용됩니다. DetectHiddenWindows On 명령어를 사용하여 숨겨진 윈도우도 감지할 수 있습니다. 이 개념을 마스터하면, "그 창 어디 갔지?"라는 고민이 사라집니다!

2. 윈도우 상태: 활성, 최소화, 최대화, 숨김

윈도우는 다양한 상태를 가질 수 있으며, AutoHotkey를 통해 이러한 상태를 변경할 수 있습니다.

  • 활성(Active): 현재 사용자가 상호작용하고 있는 윈도우입니다.
  • 최소화(Minimized): 작업 표시줄에 숨겨진 상태입니다.
  • 최대화(Maximized): 화면 전체를 차지하는 상태입니다.
  • 숨김(Hidden): 화면에 표시되지 않지만 백그라운드에서 실행 중인 상태입니다.

WinMinimize, WinMaximize, WinRestore, WinHide, WinShow 등의 명령어를 사용하여 윈도우의 상태를 제어할 수 있습니다. 예를 들어, 프레젠테이션 중에 불필요한 창을 숨기는 스크립트로 프로페셔널하게 보일 수 있어요.

3. 명령어 전송: 백그라운드 작업의 마법

AutoHotkey의 가장 강력한 기능 중 하나는 특정 윈도우에 키 입력이나 마우스 클릭을 직접 전송하는 능력입니다. 특히 ControlSend 명령어는 해당 윈도우를 활성화할 필요 없이 윈도우 내의 특정 컨트롤(버튼, 텍스트 상자 등)에 명령을 보낼 수 있게 합니다. 이는 백그라운드에서 작업을 처리할 때 매우 유용하며, 여러분의 작업 흐름을 방해하지 않습니다. 데이터 입력 자동화나 테스트 스크립트에 필수!

4. 윈도우 위치 조작: 작업 공간의 정리정돈

WinMove 명령어는 윈도우의 위치와 크기를 자유자재로 조절할 수 있게 해줍니다. 특정 애플리케이션을 실행할 때 자동으로 윈도우를 원하는 위치로 이동시키거나 크기를 조정하여 작업 공간을 깔끔하게 정리하는 데 활용할 수 있습니다. 듀얼 모니터 세팅에서 창을 자동 배치하면, 마치 스마트 데스크톱처럼 느껴질 거예요.

5. 윈도우 닫기 및 숨기기: 방해 요소 제거

불필요한 윈도우는 작업에 방해가 될 수 있습니다. WinClose 명령어를 사용하여 특정 조건을 만족하는 윈도우를 프로그래밍 방식으로 닫을 수 있으며, WinHide 명령어를 사용하면 윈도우를 일시적으로 숨겨 시야에서 제거할 수 있습니다. 중요한 미팅 전에 팝업 광고나 채팅 창을 싹 정리하는 데 딱!

실용적인 AutoHotkey 윈도우 관리 예시

이제 위에서 살펴본 핵심 개념들을 실제 스크립팅 예시를 통해 구체적으로 이해해 봅시다. 각 예시는 간단히 설명하고, 바로 실행 가능한 코드로 제공할게요. (AutoHotkey를 설치한 후 .ahk 파일로 저장해 실행하세요.)

예시 1: 열려있는 메모장 인스턴스 개수 확인

이 스크립트는 ahk_class Notepad를 사용하여 현재 실행 중인 모든 메모장 윈도우의 목록을 가져오고, 그 개수를 메시지 상자에 표시합니다. DetectHiddenWindows On은 숨겨진 메모장 윈도우까지도 감지할 수 있도록 합니다.

; 열려 있는 모든 메모장 윈도우의 제목을 가져옵니다.
DetectHiddenWindows On  ; 숨겨진 윈도우도 감지하도록 설정합니다.
WinGet, idList, List,, ahk_class Notepad  ; 클래스 이름으로 메모장 윈도우 목록을 검색합니다.
MsgBox, 메모장 인스턴스 수: %idList%  ; 메시지 상자에 개수를 표시합니다.

예시 2: 활성 윈도우를 특정 위치로 이동

매우 간단하지만 강력한 스크립트입니다. 현재 활성화된 윈도우(A는 Active Window를 의미)를 화면 좌측 상단에서 각각 100픽셀 떨어진 위치로 이동시킵니다. 여러 개의 윈도우를 특정 위치에 정렬할 때 유용합니다.

; 활성 윈도우를 좌표 (100, 100)으로 이동합니다.
WinMove, A,, 100, 100

예시 3: 백그라운드 메모장에 텍스트 전송

이 스크립트는 메모장 윈도우를 활성화하지 않고도 "Hello World!"라는 텍스트를 메모장에 직접 전송합니다. ahk_exe notepad.exe를 사용하여 메모장 실행 파일을 대상으로 지정하며, 백그라운드에서 데이터를 입력해야 할 때 매우 효과적입니다.

; 애플리케이션 내의 특정 컨트롤에 텍스트를 직접 보냅니다.
ControlSend,, Hello World!, ahk_exe notepad.exe

예시 4: 불필요한 Chrome 인스턴스 자동 닫기

Chrome 브라우저가 실행 중인 경우 자동으로 모든 Chrome 윈도우를 닫는 스크립트입니다. 중요한 작업 전에 불필요한 브라우저 탭을 정리하고 싶을 때 유용합니다. (주의: 중요한 탭이 있으면 백업하세요!)

; 실행 중인 모든 Chrome 인스턴스를 닫습니다.
If WinExist("ahk_exe chrome.exe") {
    WinClose, ahk_exe chrome.exe
}

예시 5: 파일 탐색기 윈도우 임시 숨기기

ahk_class CabinetWClass는 파일 탐색기 윈도우를 나타냅니다. 이 스크립트는 실행 중인 모든 파일 탐색기 윈도우를 숨겨 여러분이 다른 작업에 집중할 수 있도록 돕습니다. 필요할 때는 WinShow 명령어를 사용하여 다시 표시할 수 있습니다.

; 모든 탐색기 윈도우를 임시로 숨깁니다.
If WinExist("ahk_class CabinetWClass") {
    WinHide, ahk_class CabinetWClass
}

이 예시들을 기반으로 커스터마이징해 보세요. 예를 들어, 핫키(F1)를 눌렀을 때 실행되도록 F1::를 추가하면 더 편리합니다.

결론: AutoHotkey로 여러분의 작업 흐름을 혁신하세요!

AutoHotkey를 통한 윈도우 관리를 마스터하는 것은 단순한 스크립팅 기술을 넘어, 여러분의 디지털 작업 환경을 완전히 새로운 수준으로 끌어올리는 경험이 될 것입니다. 윈도우를 식별하고 제어하는 기술을 익히면, 더 이상 마우스와 키보드에 얽매이지 않고 자유롭게 작업할 수 있습니다. 오늘부터 작은 스크립트 하나부터 시작해 보세요 – 생산성이 2배, 3배로 뛸 거예요!

728x90