Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 61
  • 2677858
DNS Powered by DNSEver.com
일반

[AutoHotkey] 단축키(Hotkey) 스크립트 작성과 자동 시작 등록

Posted 2018. 11. 04 Updated 2021. 12. 28 Views 24118 Replies 0
Atachment
첨부

autohotkey.jpg

AutoHotkey의 간단한 응용으로, 지정한 단축키를 눌렀을 때 특정 동작을 실행하도록 할 수 있습니다. 단축키가 눌렸을 때 GUI 팝업창 열기와 같은 AutoHotkey 내부 기능을 실행하도록 하거나, Windows 프로그램이나 명령을 실행하도록 할 수 있습니다.

이 글에서는 가장 간단한 응용으로 단축키를 눌렀을 때 Windows 프로그램/명령을 실행하거나, 특정 키 입력(Keystroke)을 전달하는 방법에 대해 다루도록 하겠습니다.

Windows 자체적으로도 사용자 정의 단축키를 지정하는 방법이 있긴 합니다. 실행할 명령을 Batch 파일(*.bat)로 만들고 단축 아이콘(바로 가기)을 생성한 뒤, 단축 아이콘의 속성창에서 단축키(바로 가기 키)를 지정하는 방식입니다. 하지만 뭐가 문제인지 단축키를 눌렀지만 씹히고 실행이 되지 않는 경우가 종종 있습니다. 따라서 Windows 내장 단축키 기능을 사용하기 보다는, 필요한 단축키들을 모아서 하나의 AutoHotkey 스크립트 파일로 만들어 쓰는 편이 훨씬 더 낫습니다.

 

단축키 루틴

특정 단축키 조합이 눌렸을 때 수행할 동작을 지정하는 AutoHotkey 루틴은 다음과 같습니다.

{키_조합}::
    {실행_구문}
    ...
Return

단일 스트립트 파일 안에 위 루틴을 여러 개 집어넣으면 해당 수만큼의 단축키를 지정할 수 있습니다.

 

키 조합

{키_조합}에는 사용할 단축키를 지정합니다. 보통 단축키는 Ctrl, Alt와 같은 기능키와 일반키를 조합해서 지정하는데, 다음 기호들이 대표적인 기능키를 나타냅니다.

  • #: Win
  • !: Alt
  • ^: Ctrl
  • +: Shift

여러 개의 기능키들을 조합해서 사용할 수도 있는데, 예를 들어 "^!d"[Ctrl]+[Alt]+[D]를 의미합니다. 이 외에 여러 다른 기능키들은 다음 매뉴얼 페이지에 나열되어 있습니다.

  • 키 지정 방법: https://autohotkey.com/docs/Hotkeys.htm
  • 전체 키 목록: https://autohotkey.com/docs/KeyList.htm

 

실행 구문

{실행_구문}에는 해당 단축키가 눌려졌을 때 실행할 동작을 지정합니다. 기본적으로 Windows 프로그램/명령을 실행하거나 지정한 키 입력을 전달할 수 있고, AutoHotkey API를 나열해서 더 복잡한 기능을 구현할 수도 있습니다.

 

ⅰ) Windows 프로그램/명령 실행

명령 프롬포트(cmd.exe)에서 사용 가능한 모든 명령을 지정할 수 있습니다.

Run, {명령}

 

ⅱ) 키 입력 (Keystroke) 전달

현재 활성화(Focus) 되어 있는 창으로 키 입력을 전달합니다.

Send, {입력값}

{입력값}에는 일반 텍스트와 키를 섞어서 지정할 수 있습니다. 단, 키를 지정할 때는 {..} 사이에 키 이름(Key Name)을 입력해야 합니다. 예를 들어, 스타크래프트에서 쇼미더머니 치트키를 입력하는 단축키(...)를 정의하려면 Send 구문을 다음과 같이 작성하면 됩니다.

Send, {Enter}show me the money{Enter}

이 외에도 {Up}, {Down}, {Tab}등과 같은 키들을 지정할 수 있는데, 사용 가능한 전체 키 이름 목록은 여기에 나열되어 있습니다.

 

단축키 스크립트 예제

다음 예제는 다음 세 가지 단축키를 정의하는 스크립트를 작성한 것입니다.

  • [Ctrl]+[Alt]+[T] → Teraterm 실행
  • [Ctrl]+[Alt]+[D] → 장치 관리자 (Device Manager) 열기
  • [Alt]+[Insert] → "[YYMMDD]" 입력
;[Ctrl]+[Alt]+[T] -> Launch Teraterm
^!t::
    Run, "C:\Program Files (x86)\teraterm\ttermpro.exe"
Return

;[Ctrl]+[Alt]+[D] -> Open Device Manager
^!d::
    Run, devmgmt.msc
Return

;[Alt]+[Insert] -> Type date string "[YYMMDD]"
!Insert::
    FormatTime, date_string, , yyMMdd
    Send, % "[" . date_string . "]"
Return

참고: 세미콜론(;)으로 시작하는 줄은 주석으로 처리되어 무시됩니다.

 

부팅시 데몬 자동 시작하기

단축키를 사용하려면 작성한 스크립트 파일을 더블클릭해서 AutoHotkey 데몬을 실행해 놓은 상태에서 키 조합을 눌려야 합니다. 항상 사용하는 단축키 스크립트는 Windows 시작시 자동으로 실행되도록 시작 프로그램에 등록해 놓고 사용하면 편리합니다.

작성한 스크립트 데몬이 Windows 시작시 자동으로 실행되도록 하려면 Windows 시작프로그램 폴더(시작 → 실행 → "shell:startup")에 작성한 스크립트나 스크립트 단축 아이콘을 위치시키도록 합니다.

참고: 이 방법 외에 시작 프로그램 Registry에 등록하는 방법도 있는데, 어차피 효과는 동일합니다. 굳이 시작프로그램 폴더를 깔끔하게 유지해야 할 이유가 없다면, 그냥 바로가기 만들어서 짱박아놓고 쓰도록 합니다.

 

서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
193 Linux [Bash] 자동완성 스크립트(Completion Script) 작성 방법과 동작 원리 TUW 2019.08.28 8151
192 OrCAD [OrCAD Capture] 회로도 PDF로 출력하기 - PDF Export 활용 file TUW 2021.12.28 19543
191 일반 [WSL] Windows Subsystem for Linux - 디스플레이 서버 설정 및 GUI 사용하기 file TUW 2021.12.28 35105
190 일반 [TeraTerm] 명령줄 인수와 공개키 인증으로 간편하게 SSH 접속하기 TUW 2018.11.06 5053
189 일반 [WSL] Windows Subsystem for Linux - SSH 서버 자동 시작 설정하기 file TUW 2021.12.28 18376
188 일반 [WSL] Windows Subsystem for Linux - SSH 서버 세팅하기 file TUW 2021.12.28 44583
187 일반 [WSL] Windows Subsystem for Linux - Bash.exe를 Ubuntu와 유사하게 설정하기 file TUW 2021.12.28 6322
186 일반 [WSL] Windows Subsystem for Linux - 초기 설치와 Ubuntu 배포판 설치 file TUW 2021.12.28 17108
» 일반 [AutoHotkey] 단축키(Hotkey) 스크립트 작성과 자동 시작 등록 file TUW 2021.12.28 24118
184 일반 [AutoHotkey] 소개와 설치 및 기본 설정 - GUI 예시, 기본 에디터 변경 file TUW 2021.12.28 11253
183 일반 Windows에서 포트 포워딩(Port Forwarding) 설정하기 - Netsh TUW 2018.02.03 64879
182 Security [SSL/HTTPS] Let's Encrypt 무료 SSL 인증서 발급/설치/관리 - certbot 사용법 file TUW 2021.12.28 34278
181 Security [SSL/HTTPS] StartSSL/StartCom 사태와 Let's Encrypt로의 이전 1 file TUW 2021.12.28 12571
180 Linux [Ubuntu] Windows와 멀티부팅 환경에서 시간이 맞지 않는 현상 해결하기 TUW 2017.06.08 30105
179 일반 [Windows] 다중 NIC(LAN카드) 환경에서 Routing Table 설정 - route 명령 2 file TUW 2019.10.21 74738
178 일반 [CMake 튜토리얼] 3. CMakeLists.txt 기본 패턴 5 TUW 2019.08.19 50235
목록
Board Pagination Prev 1 2 3 4 5 6 7 ... 13 Next
/ 13

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5