이번 강은 Send와 Sleep에 대해서 배워보겠습니다.


 키보드를 입력하는 Send 

키보드에 있는 키를 눌러주는 명령어로 Send가 있습니다. 우리가 직접 키를 누르지 않아도, 키 입력을 가능케 만들어줍니다. 매개변수를 살펴볼까요?

Send, Keys

Keys에는 누를 키가 들어갑니다. 누를 키는 기본적으로 중괄호를 감싼 후 써주셔야합니다. 아래와 같이 말입니다.

Send, {A}
Send, {Enter}
Send, {Tab}
Send, {Ctrl}

 

여기에 15강. 핫키와 핫스트링에서 배웠던 조합키를 이용해서 키 조합을 보낼 수도 있습니다. 이 때 주의하실 점으로는, 조합키를 보낼 땐 영문자를 반드시 소문자로 써주세요. 아래 예제를 실행시켜보시면 MsgBox가 출력되는 것을 볼 수 있습니다.

Send, ^{a}
return

^A::
MsgBox, Ctrl + A를 눌렀습니다.
ExitApp

18강1.ahk
0.00MB

 

마지막으로, 아래와 같이 문자열을 입력할 수도 있습니다. 섞어서 쓸 수도 있고요.

F1::
Send, 안녕하세요. 저는 홍길동입니다.
return

F2::
Send, 엔터키를 입력하시면 되겠네요.{Enter}얍얍
return

F3::
ExitApp

18강2.ahk
0.00MB

위 예제는 메모장에 커서를 둔 다음 F1부터 F3까지 순차적으로 눌러보시면 됩니다.

 

 

부가적인 사항은 아래와 같습니다.

  • 조합키를 입력하지 않고, ! + ^ #을 그대로 출력하고 싶은 경우 Send를 SendRaw로 바꿔주세요.
  • 키를 누르는 동작과, 떼는 동작을 따로 구분하여 줄 수도 있습니다. 누르는 건 {A Down}, 떼는 건 {A Up}과 같은 식입니다. 띄어쓰기는 필수입니다.
  • 방향키는 Up / Right / Left / Down이며, 넘버 패드는 Numpad(기호명)식입니다.
  • 한영키는 {VK15}입니다.
  • 조합키는 !a나 !{a}의 꼴 모두 허용합니다. 다만 말씀드렸다싶이 !A나 !{A}는 되지 않습니다.
  • 키 이름 뒤에 숫자를 적어서 여러번 누르는 것을 구현할 수 있습니다 (Send, {A 5}는 A를 5번 누릅니다.)

 잠시 쉬어가는 Sleep 

Sleep은 스크립트에 지연 시간(=딜레이)을 넣어주는 명령어입니다. 매개변수는 아래와 같습니다.

Sleep, DelayInMilliseconds

매개변수 이름이 정말 기네요. DelayInMilliseconds 매개변수에는 지연 시간을 '밀리초' 단위로 적어주시면 됩니다. 참고로, 1초 = 1000밀리초입니다.

 

아래처럼 스크립트를 구성한다면 1초에 한번씩 A키를 5번 입력할 것입니다.

Send, {A}
Sleep, 1000
Send, {A}
Sleep, 1000
Send, {A}
Sleep, 1000
Send, {A}
Sleep, 1000
Send, {A}
ExitApp

18강3.ahk
0.00MB

 


| 18. Send와 Sleep |