프날 오토핫키 강좌  v2

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

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

38. Send


이번 강에서는 오토핫키를 이용한 키보드 입력을 구현해보겠습니다.

Send

단일 자판을 입력하든, 키 조합을 입력하든, 심지어 문장을 입력하든... 키보드로 '입력'하는 것은 모두 Send 함수를 이용할 수 있습니다.

Send(Keys)

필수 매개변수 하나만 있네요!

  • Keys: 누를 키 (문자열이기 때문에 따옴표 처리를 잊으면 안됩니다!)

1. 단일 자판 입력

먼저 단일 자판를 누르는 경우입니다. 이 경우 누를 키를 {}로 감싸줍니다. 예를 들어서, 키보드의 F1키를 누르고 싶다면 {F1}처럼, a키를 누르고 싶다면 {a}처럼 써주면 됩니다.

특수한 키도 마찬가지입니다. 화살표 버튼은 {up}{down}{left}{right}처럼, 기타 특수 키도 {ctrl}{alt}{shift}처럼 입력할 수 있습니다. 대부분의 경우 키보드에 써진 글쇠를 그대로 따릅니다.

1Send("{c}")
단일 자판 입력 (c 키)

2. 키 조합 입력

핫키를 배울 때 키 조합에 대해서 언급했는데, 기억하시나요? 핫키에서 썼던 조합키의 수식 기호를 그대로 이용해서 써줍니다. 그리고 수식 기호 뒤에 단일 자판을 그대로 적어주시면 되죠.

예를 들어서 Ctrl + c^{c}으로 적어주시면 됩니다. Ctrl을 의미하는 수식 기호가 ^ 였죠? 수식 기호가 기억 안나시면 다시 19강 조합키의 수식 기호 부분을 참고하세요.

1Send("!{F5}")
키 조합 입력 (Alt + F5 키)

3. 문장 입력

문장을 그대로 입력해주면 됩니다. 그 문장을 만드는데 필요한 키보드 입력을 재현하여 문장이 쳐지게 합니다.

다만 조합키에 쓰이는 기호나 단일 자판 입력에 쓰는 중괄호 기호({})는 입력되지 않기 때문에, 입력하고자 하는 문장에 이들이 포함되어 있다면 Send 대신 SendText를 사용하면 됩니다. (함수가 달라졌지만 사용법은 똑같습니다.)

1Send("헌법 제22조`n① 모든 국민은 학문과 예술의 자유를 가진다.")
문장 입력 1 (헌법 조문)

Tip: 단일 자판 입력에서의 대소문자 구분

Send("{A}")Send("{a}")는 다릅니다!

Caps Lock이 꺼져있는 상태에서, 우리가 a키를 누르면 소문자가 입력되고 Shift + a를 누르면 대문자가 입력됩니다. 따라서 Send("{A}")처럼 사용하면 Shift + a를 입력하게 됩니다. 이런 Shift 입력을 의도하지 않은 경우, 소문자로 적어주어야 합니다.

Send의 추가 기능

키를 누르고 있거나 반복할 수 있습니다.

누르고 있기(Holding)

단일 자판을 입력할 때 그 자판을 계속 누르고 있게 할 수 있습니다. 중괄호 안에서 키 이름 뒤를 한 칸 띄고, down 또는 up 키워드를 붙여주면 됩니다.

1Send("{a down}")
2Sleep(1000)
3Send("{a up}")
예제 2. a키를 1초간 입력

일반적으로 a키를 꾹 누르면 aaaaaaa와 같이 해당 키가 반복되는데, 오토핫키와 같이 소프트웨어적으로 키를 누르고 있으면 이러한 반복이 일어나지 않습니다. 키를 반복해주는 것은 드라이버 또는 하드웨어의 기능이기 때문입니다. 소프트웨어 입력에서 키를 반복하려면 아래의 반복 기능을 사용하거나, 반복문을 사용해야합니다.

반복하기 (Repeating)

아래와 같이 키를 반복할 수 있게 할 수도 있습니다. 사용한 중괄호 안에서 키 이름 뒤를 띄고 반복할 숫자를 붙여주면 됩니다.

1Send("{a 30}")
예제 3. a키를 30번 누름 (스크립트 파일 미제공)

조합키를 사용해도 마찬가지입니다. Send("+{F1 5}")Shift + F1을 5번 입력합니다.

글쇠 목록

사용 가능한 글쇠는 공식 문서의 KeyList 문서에서 볼 수 있습니다. 몇가지 추가로 말씀드리면, 방향키는 Up Down Left Right로 입력할 수 있습니다. 마우스 버튼도 LButton RButton MButton X1Button X2Button 등으로 입력할 수 있으며, WheelDown WheelUp과 같이 마우스 휠도 동작시킬 수 있습니다. 마지막으로, 한국에서 자주 쓰는 한/영키는 VK15입니다.

실습

1. 간단한 키 입력 기초

1F1::
2{
3 Send("제31조`n① 모든 국민은 능력에 따라 균등하게 교육을 받을 권리를 가진다. `n")
4 Send("⑤ 국가는 평생교육을 진흥하여야 한다. `n")
5 SendText("#남녀노소 #오토핫키 ^^")
6 Send("^{a}")
6 ExitApp
7}
예제 1. 문장을 입력한 후 Ctrl + A를 누르는 예제

메모장을 열고, F1 키를 눌러 실행해보세요. 문장을 입력한 후 Ctrl + A를 누르기 때문에, 입력한 텍스트가 전체 선택 되는 것을 볼 수 있습니다. (Ctrl + A는 '모두 선택' 단축키입니다.)

5번 줄이 특이한데, 앞서 언급드린 대로 입력할 문장에 조합키의 수식 기호나 {, }와 같은 기호는 '문장'이 아닌 '특수한 키'로 사용되므로, 위와 같이 SendText를 이용해야합니다. 수식 기호 #^를 원래대로 입력하기 위해서 SendText를 사용한 것입니다.

Send로 할 수 있는 일은 무궁무진합니다. 여기에 설명하지 못한 기능도 많습니다. 기초 강좌이므로 이렇게만 설명하고 넘어가도록 하겠습니다.

질문하러 가기