본문 바로가기

오토핫키v2

내가 쓰려고 만든 오토핫키v2(AutoHotKey v2) 업무에 꼼수를 활용해보자

오토핫키 설치부터 간단한 사용법 정리

 

더보기

저는 프로그래밍을 본격적으로 공부하기 전에도 컴퓨터를 다루는 일을 했었어요.

당시 오토핫키라는 언어의 도움을 받아서 사전지식 없이 그냥 웹에서 찾은 지식만으로 업무를 자동화 하고, 노가다업무를 줄이는데 꽤 큰 도움을 받았습니다.

 

설치 전 알아야 할 것

이 글은 오토핫키 v2에 대한 내용을 다룹니다.

현재 국내에는 오토핫키 v2에 대한 자료가 별로 없습니다.

v2가 예전부터 베타버전으로 사용되어 오다가 2022년 말쯤 되어서야 공식 버전으로 배포되기 시작 했거든요.

지금 국내 자료로는 오토핫키 v1에 대한 나용이 압도적으로 많습니다. 한글화가 짱짱하게 잘 된 자료 들과, 한국 커뮤니티에서 토론된 자료들이 모두 오토핫키 v1에 대한 내용들입니다.

이는 비단 한국어 뿐만이 아닙니다.

Chat GPT에 오토핫키v2에 대해 질문하면 영어로 질문을 해도 대부분의 문법들을 오토핫키 v1에 대한 내용들로 가르쳐 줍니다.

결론: 지금당장 효율성을 찾는다면 v1을 사용하는것이 더 효율적이라는것을 알려드리고 싶습니다.

 

 

 

저는 뭐 복잡한 프로그램을 만들것도 아니기 때문에 V2를 사용하기로 했습니다.

감사하게도 지금 이 시간에도 무료로 배포해주시는 많은 분들의 한국어 자료들과, 영어 메뉴얼을 바탕으로 직접 실험해 가면서 정리했습니다.

 

AutoHotkey

 

AutoHotkey

AutoHotkey provides a simple, flexible syntax allowing you to focus more on the task at hand rather than every single little technicality. It supports not only the popular imperative-procedural paradigm, but also object-oriented and command-based programmi

www.autohotkey.com

 

설치는 홈페이지에서 진행 하게 됩니다.

홈페이지에 들어가면 대문짝만한 Download 버튼이 있습니다.

당연히 저는 v2 버전을 설치 하겠습니다.

 

설치에 대한 내용을 따로 정리하고 싶었는데 국내에 프날님이 제대로 정리해 두신게 있습니다.

설치 뿐만아니라 다양한 기능을 설명하고 있으니 오토핫키를 제대로 배우고 싶으시면 해당 페이지를 적극 추천합니다.

 

프날 오토핫키 v2 - 3. 오토핫키 프로그래밍 준비하기 (pnal.dev)

 

프날 오토핫키 v2 - 3. 오토핫키 프로그래밍 준비하기

⚠ 이 강좌는 오토핫키 v2를 다룹니다 지금 보시는 강좌는 널리 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다. 이전 오토핫키 버전과는 많은 부분에서 호환이 되지 않으

ahkv2.pnal.dev

프날 오토핫키 v2 - 5. 오토핫키 스크립트 만들기 (pnal.dev)

 

프날 오토핫키 v2 - 5. 오토핫키 스크립트 만들기

⚠ 이 강좌는 오토핫키 v2를 다룹니다 지금 보시는 강좌는 널리 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다. 이전 오토핫키 버전과는 많은 부분에서 호환이 되지 않으

ahkv2.pnal.dev

그냥 이거 보면서 따라하면 설치 부터 에디터 준비까지 완벽하게 가능합니다.

그러면 에디터인 SciTE4 까지 설치가 끝나셨으리라 생각하고

 

직접 업무에 활용해 보겠습니다.

 

오토핫키는 굉장히 쉽고 직관적이예요.

 

먼저 기본적인 문법은 이렇습니다.

오토핫키 v1과 차이점에 대해 주로 설명 하겠습니다.

 

함수와 매개 변수 사이에 , (컴마) 가 없어야 합니다.

예를들어 MouseClick이라는 함수를 쓴다고 가정하면

MouseClick "left" , 1000, 500

위는 마우스 왼쪽 클릭을 1000, 500 좌표로 행하라는 문장입니다.

이런식으로 매개변수들 사이에는 컴마로 구분을 해 주지만 함수와 매개변수 사이는 공백문자나 [Tab] 으로 구분 하게 됩니다. 

특히 이 점은 오토핫키 v1과 비교 했을 때 가장 큰 차이점입니다. 오토핫키 v1은 함수와 매개변수 사이를 컴마로 구분하거든요.

 

 

매개 변수 (Parameter) 들은 괄호가 없어도 동작합니다. 

기존 v1이나 다른 언어들은 괄호 안에 매개변수를 넣어 함수에 전달하는 경우가 많습니다.

하지만 오토핫키에서는 함수에 따로 반환하는 값이 없는 경우 괄호를 생략할 수 있고, 괄호를 생략하게 되면 반환값은 자동으로 폐기됩니다.

(원문: Parameters are the same regardless of parentheses; i.e. there is no output variable for the return value, so it is discarded if parentheses are omitted.)

 

변수 참조는 이제 % 기호로 묶이지 않습니다.

 기존 v1에서는 x, y가 변수라고 할 때

MouseMove, %x%, %y% 이런식으로 %로 묶여서 동작했었습니다만, 이제는 그렇게 동작하지 않습니다.

묶는 다면 괄호로 묵어야 하더라고요

오토핫키 v2 에서는 MouseMove (x) (y) 가 맞는 표현 입니다.

 

지금 제가 사용하고 있는 키 매핑입니다.

 

스크립트에 그대로 복사, 붙여넣기 하시고, F5를 눌러서 Run 하시면 작동합니다.

Ctrl + F12를 누르면 종료 됩니다.

^F12::
{
    MsgBox "종료!", "프로그램이 종료됩니다.", "OC Icon!"
    ExitApp
}

CapsLock & o::End
CapsLock & u::Home



CapsLock & j:: Left
CapsLock & k:: Down
CapsLock & l:: Right
CapsLock & i:: Up
CapsLock & y:: Delete


CapsLock & ':: "
CapsLock & 9:: (
CapsLock & 0:: )
CapsLock & SC027:: :

위에 언급했듯이 Ctrl 키와 F12키를 조합해서 누르면 종료 메시지와 함께 프로그램을 종료 할 수 있습니다.

 

CapsLock 키와 [ , ] 키를 조합해서 Home키, End키를 구현 했습니다. 특수키를 누르기 위해 손을 멀리 가져가지 않아도 됩니다.

뿐만 아니라 방향키를 사용하기 위해 손을 움직일 필요도 없습니다. 

그런데 이렇게 하면 핫키를 사용 할 때 마다 CapsLock 버튼을 다시 눌러서 대/소문자 설정을  다시 해야 하는거 아닌지

궁금하실 텐데 CapsLock이 핫키로 사용되고 나면 Key Up을 할 때, 다시 한번 입력되어서 토글이 해제 됩니다.

번거롭게 다시 설정할 필요가 없다는 이야기죠

 

핫 키 조합은 Alt로 하셔도 되고, 다른키도 상관 없는데, 기존 단축키가 존재한다면 추가로 생각할 것이 생깁니다.

만약 win 키로 설정 해두셨다면 win+L이 눌렸을 때, 로그오프 화면이 나오게 되니 이렇게 사용하고 싶다면 따로 레지스트리 수정 작업을 거쳐야 합니다.

 

Alt 키와 조합

^F12::
{
    MsgBox "종료!", "프로그램이 종료됩니다.", "OC Icon!"
    ExitApp
}

!]::End
![::Home



!j:: Left
!k:: Down
!l:: Right
!i:: Up
!Backspace:: Delete

Tab키와 조합

^F12::
{
    MsgBox "종료!", "프로그램이 종료됩니다.", "OC Icon!"
    ExitApp
}

tab & ]::End
tab & [::Home



tab & j:: Left
tab & k:: Down
tab & l:: Right
tab & i:: Up
tab & Backspace:: Delete

*Tab::Tab

 

핫키의 문법은 아래와 같습니다.

공식 페이지에 있는 내용을 긁어와서 번역해본 것입니다.

Hotkeys - Definition & Usage | AutoHotkey v2

 

Hotkeys - Definition & Usage | AutoHotkey v2

~ When the hotkey fires, its key's native function will not be blocked (hidden from the system). In both of the below examples, the user's click of the mouse button will be sent to the active window: ~RButton::MsgBox "You clicked the right mouse button." ~

www.autohotkey.com

제가 직접 사용해 보았고 작동했던 기능만 넣었습니다.

 

# Win (일반적으로 좌측 Ctrl과 Alt 사이에 있는 윈도우 버튼)
Win + D (최소화) Win + L(컴퓨터 잠금) Win+E(파일탐색기) 등등 윈도우 단축키와 겹칠 경우 해당 동작이 같이 작동됩니다.
원하시면 레지스트리 값을 수정해서 해당 동작이 작동 되지 않도록 변경해야 합니다.
이런 작업은 개인용 PC가 아닌 경우 문제가 될 수 있으니 주의 합니다.
! Alt
알트 키 입니다.
윈도우 키와 동일하게 기본단축키와 함께 작동할 수 있으니 주의합니다.
^ Ctrl
컨트롤 키
+ Shift
쉬프트 키
& 두개의 키, 또는 마우스 버튼 사이에 앰퍼샌드키를 사용하여 핫키로 결함할 수 있습니다.
위에서 제가 사용한 것이 예입니다. 해당 키들을 동시에 눌렀을 때, 핫키로 동작합니다.
< 쌍으로 존재하는 버튼키 중에서 왼쪽키만 트리거 합니다. <! 는 왼쪽알트만을 의미하고 ! 는 왼쪽,오른쪽 둘다 포함 한다는 의미입니다.
> 위와 같은 의미로, 페어버튼 중에서 오른쪽키만 트리거 합니다.

 

'오토핫키v2' 카테고리의 다른 글

오토핫키 v2 ScanCode 확인 하기  (0) 2023.06.02
오토핫키 v2 마우스 클릭 사용해보기  (0) 2023.04.18