일반

[AutoHotkey] 소개와 설치 및 기본 설정 - GUI 예시, 기본 에디터 변경

Posted 2018. 11. 04 Updated 2021. 12. 28 Views 11504 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

AutoHotkey는 간단한 스크립트 문법으로 매크로를 정의하고 사용할 수 있도록 해 주는 유틸리티 프로그램입니다. 이벤트 트리거로 마우스, 키보드, 조이스틱을 사용할 수 있으며, 키보드나 마우스의 특수키도 사용 가능합니다.

사실 유틸리티 프로그램이라고 하기에는 부가 기능이 상당히 많은데, 파일 입출력이나 GUI 인터페이스, 프로세스 관리, DLL Call[!]과 같은 고급 기능도 사용할 수 있습니다. 사실상 Windows에서 Batch 파일의 완전 대체가 가능한 스크립트 언어를 정의하는 프레임워크라고 봐도 무방합니다.

다음은 제가 몇달 전부터 AutoHotkey로 제작해서 사용중인 SFTPNetDrive용 GUI Front End 입니다. 단축키 [Ctrl]+[Alt]+[W]를 누르면 아래 그림과 같은 컨트롤패널 창이 나타나고, 여기서 버튼 클릭으로 SFTPNetDrive에 명령을 보내서 네트워크 드라이브를 연결하거나 해제할 수 있습니다.

AutoHotkey로 작성한 GUI 예제
▲ AutoHotkey로 제작한 GUI 예제 (NDCP)

이 글에서는 AutoHotkey의 설치와 기본 인터페이스, 기본 설정 방법에 대해 다룹니다.

 

AutoHotkey 설치

https://autohotkey.com에서 AutoHotkey 최신 버전을 다운받아 설치합니다.

설치 후 어디를 찾아 봐도 바로가기 아이콘 등이 생성되지 않으며, 완료 후 [Run AutoHotkey] 버튼을 누르면 웬 도움말 창이 뜹니다.[...]

약간 특이하게, AutoHotkey는 스크립트 파일(*.ahk)을 작성한 뒤 그 스크립트를 더블클릭해서 바로 실행하는 방식으로 사용합니다. 즉, AutoHotkey 프로그램 자체로는 아무런 인터페이스가 없으며, 아무 에디터로 스크립트 파일을 작성해서 *.ahk로 저장한 뒤 필요할 때 더블클릭해서 사용하면 됩니다.

이 때, 단순 실행 스크립트면 바로 실행 후 종료되고, 단축키와 같이 특정 이벤트가 발생했을 때 지정된 동작을 수행하는 스크립트 데몬인 경우 다음과 같이 시스템 트레이에 아이콘이 생기면서 데몬이 실행됩니다.

ahk tray.png

시스템 트레이 아이콘에 마우스를 올리면 실행중인 스크립트 파일명이 표시됩니다. 마우스 오른쪽 버튼을 누르면 팝업창이 뜨는데, 여기서 Exit를 선택하면 해당 스크립트 데몬이 종료됩니다. Edit This Script를 선택하면 에디터(기본 메모장)가 뜨면서 스크립트를 편집할 수 있고, Reload This Script로 변경된 스크립트를 재실행할 수 있습니다.

※ 스크립트를 변경한 경우 데몬을 종료했다 다시 실행하거나, 실행 중인 데몬의 팝업 메뉴에서 Reload This Script를 선택해 줘야만 변경사항이 적용됩니다.

여러 스크립트 데몬을 동시에 실행한 경우 실행한 스크립트의 수만큼 트레이에 아이콘이 등록됩니다. 아이콘이 똑같지만, 마우스를 올리면 어떤 스크립트인지 파일명이 나타나므로 쉽게 구별할 수 있습니다.

 

기본 에디터 변경

트레이 아이콘의 팝업 메뉴에서 Edit This Script를 실행하면 기본 에디터로 메모장이 뜨는데, 이것을 자신이 선호하는 다른 에디터로 바꿔주도록 합니다.

  1. regedit를 실행합니다.
  2. ''HKEY_CLASSES_ROOT\AutoHotKeyScript\Shell\Edit\Command''에 새로운 Key를 추가합니다. (상위 Key가 없는 경우 모두 생성하도록 합니다.)
  3. 새로 만든 Key의 값(기본값)을 Editor 실행 명령으로 변경합니다.
    (예: "C:\Program Files\Notepad++\notepad++.exe" "%1")

default editor config.png

참고: Notepad++에서 AutoHotkey 스크립트용 Syntax-Highlight 적용하기