프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만, 새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.

19. 핫키


이제 자동화 프로그래밍을 위한 기초인 핫키를 배워보겠습니다. 핫키를 우리말로 풀어보면 단축키입니다. 여러분은 이제부터 특정 단축키를 눌렀을 때 어떤 구문이 실행되는 것을 배울 것입니다.

이름에 걸맞게, 오토핫키는 간단히 단축키 기능을 구현할 수 있는 장점이 있습니다. 단축키를 눌러서 복잡한 작업을 자동으로 해주는 것이죠.

핫키

오토핫키에서 단축키는 쌍점 두 개(::)으로 지정합니다. 그리고 실행시킬 구문의 영역은 단축키 표시 밑에 중괄호쌍({})으로 명확히 표기해주어야합니다.

1K::
2{
3 ;여기에 단축키를 눌렀을 때 구문을 작성
4}
핫키의 기본 골격

아직까진 스크립트를 실행시켜도, K키는 아무런 역할을 하지 않습니다. 실행 영역에 단축키를 눌렀을 때 할 행동을 작성해주어야하죠.

수식 기호

핫키와 함께 쓸 수 있는 수식 기호가 있습니다. 컴퓨터에서도 '복사'의 단축키가 Ctrl + C인것처럼, '키 조합'을 사용할 수 있습니다. 키 조합에 사용되는 Ctrl, Alt, Shift, Windows조합키라고 하는데, 조합 키의 수식 기호를 이용하여 키 조합을 사용할 수 있습니다. 또한, 핫키의 성질을 지정해주는 용도로도 수식 기호가 사용됩니다.

수식 기호는 핫키의 에 써주시면 되며, 아래와 같은 기호를 키 이름 대신 사용합니다.

조합키의 수식 기호

먼저 조합키를 나타내는 수식 기호입니다.

기호수식 기호의 의미
^Ctrl
!Alt
+Shift
#Windows

예를 들어서, Ctrl + P 핫키는 아래와 같이 지정합니다.

1^P::
Ctrl + P키를 의미하는 핫키

Ctrl + Alt + P 핫키는 아래처럼 써주면 되겠죠.

1^!P::
Ctrl + Alt + P키를 의미하는 핫키

핫키의 성질을 바꿔주는 수식 기호

이번엔 핫키의 성질을 바꿔주는 수식 기호입니다. 이를 이용하면 핫키의 동작 조건을 세부적으로 설정할 수 있습니다.

기호수식 기호의 의미
*와일드카드
~입력 투과

먼저, 와일드카드(*)는 다른 조합키의 조합을 허용합니다. 예를 들어서, *P::와 같이 적어주면 P만 눌러도 핫키 구문이 실행되지만, Alt + P 또는 Ctrl + P 처럼 다른 어떠한 조합키와 함께 입력해도 실행됩니다.

이어서 아래 구문을 살펴보겠습니다. Ctrl을 나타내는 수식 기호 ^와 함께 와일드카드 *를 사용했으니, Ctrl을 포함했다면 다른 키 조합에도 대응합니다.

1*^P::
와일드카드를 사용한 모습

또다른 수식 기호인 입력 투과(~)는 해당 키의 원래 입력을 허용하는 수식 기호입니다. 원래 K키를 핫키로 지정했다면 프로그램이 실행되는 동안 K키는 원래 목적으로 사용할 수 없습니다. 키보드의 K키를 눌러도 문자 K가 입력되진 않는다는 것이지요. 그러나 ~ 수식 기호를 사용하면 해당 키의 원래 기능도 막지 않으면서, 핫키 또한 실행됩니다.

Tip: 수식 기호는 더 있습니다

여러 기능을 하는 수식 기호가 더욱 있습니다만, 강좌에서는 기초적인 수식 기호 몇 가지만 설명드립니다. 모든 조합키 목록은 레퍼런스 문서(https://www.autohotkey.com/docs/v2/Hotkeys.htm#Symbols)에서 참고하실 수 있습니다.

실습

1. 핫키의 사용

아직 배운 함수가 MsgBox 밖에 없군요. 핫키를 누르면 알림 상자를 출력하도록 연습해보겠습니다.

1K::
2{
3 MsgBox("K키를 눌렀습니다.")
4}
예제 1. 단축키 K를 누르면 알림상자가 출력됨

위의 예제를 실행시킨 뒤, 키보드의 K키를 눌러보세요. 아래와 같이 알림상자가 나타날 것입니다.

K키를 눌렀습니다 라고 적힌 알림 상자 사진 1. 실행 결과 (K키를 눌렀을 때)

알림상자를 닫고 다시 K키를 누르면, 또다시 알림상자가 열립니다. 스크립트가 종료되지 않았다는 뜻입니다. 이렇게 핫키를 사용한다면 자동으로 스크립트가 종료되지 않는다는 점을 알아주셨으면 합니다. 프로그램이 핫키 입력을 계속하여 기다리고 있어야 하기 때문입니다.

Tip: 오토핫키 프로그램을 수동 종료하는 방법

핫키를 사용하면 스크립트가 자동으로 종료되지 않는다는 점을 알게 되었습니다. 실습 코드를 실행한 후엔 K키를 누를때마다 알림상자가 나타나죠. 다시 K키의 기능을 돌려놓기 위해선 프로그램을 종료할 필요가 있습니다.

아래 사진과 같이, Windows 작업표시줄의 아이콘 트레이에서 오토핫키 아이콘을 찾아 우클릭한 뒤 Exit를 눌러서 프로그램을 수동 종료할 수 있습니다. 자동으로 종료되게 하는 방법은 추후 배우도록 하겠습니다.

윈도우 작업 표시줄 우하단의 아이콘 모음에서 오토핫키 프로그램을 찾아 우클릭하면 나오는 메뉴에 있는 Exit의 모습 사진 2. 프로그램 종료

2. 수식 기호의 사용

수식 기호를 사용한 간단한 예제를 만들어보면 아래와 같습니다.

1~^C::
2{
3 MsgBox("Ctrl+C를 눌렀습니다.")
4}
예제 2. 수식 기호의 활용

예제를 실행한 후 Ctrl + C를 누르면 알림상자가 나타납니다. 그리고 핫키를 입력할 때의 키 입력이 온전히 투과되기 때문에, 핫키 동작과 동시에 Ctrl + C라는 키가 컴퓨터에 전달됩니다.

Tip: A_ThisHotkey 내장 변수

누른 핫키는 그 블록 내에선 A_ThisHotkey 내장 변수에 담깁니다.

질문하러 가기