728x90
목차

1. SendRaw : 로우모드

2. SendInput : 빠르게 입력하기

3. SendPlay : 방해금지 입력

4. SendMode : 모드 변경하기

5. SetKeyDelay : 키의 딜레이를 제어

 

 

오토핫키의 Send 명령어는 기본 기능만으로 방대해서 한번에 익히기가 어려울 수 있습니다.

특히나 정말로 Send 만 잘 활용하면 키보드로 하는 모든 상황을 대응할 수 있습니다.

그러나 잘 알면 더욱 도움되는 파생함수들이 있으니까 짚어가도록 하겠습니다.

 

1. SendRaw : 로우모드

 

Send에서는 {enter}는 키보드의 엔터키에 대응됩니다.

하지만 코드를 짜다보면 enter라는 문장이 필요할 수 있습니다.

특수키/조합키가 먹히지 않는 텍스트만 사용하는 것이 로우모드입니다.

Autohotkey 2.0 버전에서는 로우모드일 때는 "{중괄호}"는 필요하지 않습니다.

 

Send, {Raw}enter
SendRaw, ^c 문장을 입력합니다. 
→ 결과 : enter^c 문장을 입력합니다.

 

320x100

 

2. SendInput : 빠르게 입력하기

 

사용법은 Send랑 같습니다. SendInput 명령어는 문장을 빠르게 입력합니다.

문장이 켜지는 동안 다른 프로그램이 실행되거나 해서 오류가 나는 경우를 방지합니다.

운영체제따라 다르지만 대략 5000문자로 제한된다고 합니다.

아래에 보면 Send는 빠르기는 해도 한문자씩 들어가지만 SendInput은 한방에 들어가죠.

 

보이시나요?

 

3. SendPlay : 방해금지 입력

 

사용법은 Send랑 같습니다.

속도는 Send < SendPlay < Sendinput인데 SendPlay는 중간에 끼어드는 키보드 입력을 뒤로 미룹니다.

도움말에서는 가장 발전할 버전이라고 하지만 CapsLock, NumLock, ScrollLock를 켜고 끌수는 없다고 합니다.

그리고 보안프로그램에 따라서 실행되지 않는 경우가 있다고 합니다. - 이건 정확한 제보가 아닐 수 있습니다.

(그저 보안프로그램이 정말 맘에 안듭니다.)

기본적으로는 Send를 쓰는게 가장 좋습니다.

 

 

4. SendMode : 모드 변경하기 

 

SendMode, mode : Send의 사용법을 결정합니다.

 

Event(send의 구버전, 거의 유사합니다.), input, Play를 선택할 수 있습니다.

한번 선택하면 그 아래 사용되는 Send가 mode를 따라 바뀝니다.

 

F2::
sendmode, Input ; 이 아래의 Send는 SendInput과 같습니다.
send, 가나다라마바사
sleep, 500
send, 아자차카파타하
sleep, 500
send, abcdefghijklmnopqrustwzyz

msgbox, 끝났습니다.
return

 

5. SetKeyDelay : 키의 딜레이를 제어

 

위에서 빠르게 입력하는 것을 보았지만 프로그램등 사용환경에 따라서는 키 사용에 딜레이가 있어야 합니다.

그걸 지원하는 것이 SetKeyDelay입니다.

SendInput은 한순간에 입력을 하는 모드라서 이 딜레이를 무시합니다.

 

SetKeyDelay , [Delay, PressDuration, Play] : 키의 딜레이를 입력합니다.

 

  • Delay : 키와 키간의 지연시간입니다. -1을 입력하면 전혀 없고, 양수는 ㎳ 단위로 받아들입니다.
  • PressDuration : 키가 눌려져서 때질때까지의 지연시간입니다. -1을 입력하면 전혀 없습니다.
    눌렸다 때는 시간이기 때문에 그냥 타이핑을 봐서는 알 방법이 없습니다.
    사용 환경 소프트웨어(게임등)의 요구조건에 따라 입력해 줍니다.
  • Play : Play라고 입력하면 Play 모드에 지연시간을 입력할 수 있습니다. 여기서 입력하지 않으면 SendPlay는 언제나 지연시간이 -1(즉시 실행)입니다.  

 

 

 

반응형
728x90
목차

1. SEND 명령어

2. 조합키

3. Down과 UP

4. 자주 사용하는 특수키들

5. 그외 특수키들

 

우리가 컴퓨터를 사용해서 하는 일은 대표적으로 입력과 출력 2개가 있습니다.

입력은 거의 모든 경우에 마우스와 키보드로 이루어집니다.

그 중 하나인 키보드 입력에 대해서 알아보겠습니다.

 

1. SEND 명령어

 

SEND, {keys} : 키를 입력합니다.

예) Send, {a} - a를 입력합니다. / Send, {a 20} - a를 20번 입력합니다.

엄청 단순한 사용법이지만 우리가 키보드를 사용하는 방식 다양함으로 여러가지 기능을 지원합니다.

 

※ 기타 : Send 키는 실제로 키보드를 누른것과 같은 동작을 함으로 노딜레이로 실행하면 버그가 나기 쉽습니다.

Sleep 숫자(㎳ 단위의 대기시간을 가집니다.)를 이용해서 딜레이를 주는 요령을 들입시다.

 

 

 

2. 조합키

 

`과 함께 사용해서 키보드의 기능으로 인식되는 조합이 있습니다.

 

  • `n, `r : enter키로 인식합니다.
  • `t : Tap으로 인식합니다.
  • `b : 백스페이스로 인식합니다.

 

아시겠지만 AUTO HOT KEY에서 종종 쓰는 ` 키는 보통 키보드에서 1 왼쪽 ESC 아래에 있는 키입니다.

저는 가끔 다른 키랑 혼돈합니다. 점이라 잘 보이지 않으니 코딩할 때 주의하세요.

 

 

 

3. Down과 UP

 

명령어라기보단느 키 뒤에 위치하여 상태를 제어합니다.

가장 간단한 누르고 있거나 때는 동작을 보여줍니다.

 

DOWN : 키보드를 누르고 있는다.

UP : 눌렀던 키보드를 땐다.

 

아래의 예시는 a를 1000 ㎳ 동안 누르고 있다가 때는 것입니다.

그런데 키를 누르고 있어도 연속으로 aaaaaa... 으로 입력되지 않습니다.

그건 물리적인 우리가 사용하는 키보드의 기능이기 때문입니다.

그리고 한영키에 따라서 한글로 들어갈 수도 있습니다.

 

Send {a down}
Sleep, 1000
Send, {a up}

 

Down을 눌렀다가 UP으로 해지하지 않으면 큰 오류가 날수도 있습니다.

꼭 DOWN을 썻으면 UP으로 정리하는 버릇을 들여야겠습니다.

 

320x100

 

 

4. 자주 사용하는 특수키들

 

가장 자주 쓰는 특수키를 모았습니다.

일반키들은 키보드가 입력되지만 특수키들은 그냥 특수키로 실행됩니다.

예를 들어 Send, {abc} → abc를 입력하지만, Send, {enter} → 키보드의 enter키를 누른 것과 같습니다.

 

    • {F1~F24} : 키보드의 F1~F24, 우리 키보드에는 보통 F12까지 있죠.
    • {Enter} : 키보드의 Enter
    • {Escape} or {Esc}  : 키보드의 ESC
    • {Space} : 키보드의 스페이스, 빈칸이 있어도 스페이스가 됨
    • {Tab} : 키보드의 Tap
    • {Backspace} or {BS} : 키보드의 백스페이스
    • {Delete} or {Del} : 키보드의 Delete 키
    • {Control} or {Ctrl} : 키보드의 Ctrl 키
    • {LControl} or {LCtrl} / {RControl} or {RCtrl} : 왼쪽 Ctrl 키와 오른쪽 Ctrl 키
    • {Alt} : 키보드의 Alt 키
    • {LAlt} / {RAlt} : 왼쪽 Alt 키와 오른쪽 Alt 키
    • {LWin} / {RWin} : 키보드의 왼쪽 오른쪽 WINDOW키
    • {UP} {DOWN} {LEFT} {RIGHT} : 키보드의 방향키 ↑ ↓ ← → 키

 

예시를 들어보겠습니다.

5개의 글자를 선택해서 복사하고 아래에 붙여 넣는 기능입니다.

이런 간단한 작업도 메크로로 짜려면 약간 주눅이 듭니다.(중간에 시간을 1초씩 넣다보니 느리네요)

하지만 한번 짜두면 계속 쓸 수 있는게 메크로의 장점이니 반복된 작업에 사용할 수 있습니다.

 

F2:: Send, {shift down}
Sleep, 1000
Send, {right 5}
Sleep, 1000
Send, {shift up}
Sleep, 1000
Send, {ctrl down}
Sleep, 1000
Send, {c}
Sleep, 1000
Send, {right}
sleep, 1000
Send, {enter 2}
Sleep, 1000
Send, {v}
Send, {ctrl up}
msgbox, 끝났습니다.
return

뭐든 메크로가 작동되면 기분은 좋습니다.

 

5. 그외 특수키들

 

위에 자주쓰는걸 보셨으면 예상이 되겠지만 키보드에 있는 명칭을 거의 그대로 사용합니다.

어려울 것 전혀 없고 많기만 하지만 쭈욱 적어 내려가 볼테니 사용하실 꺼면 참고하세요.

 

  • {Insert} or {Ins} : 키보드의 Insert 키
  • {End} : 키보드의 End 키
  • {PgUp} / {PgDn} : 키보드의 Page up과 Page down 키
  • {CapsLock} : 키보드의 Caps Lock
  • {ScrollLock} : 키보드의 ScrollLock
  • {NumLock} : 키보드의 NumLock
  • {Numpad0} - {Numpad9} : 숫자패드의 숫자들
  • {NumpadDot} : 숫자패드의  .(점)
  • {NumpadEnter} : 숫자패드의 Enter
  • {NumpadMult} : 숫자패드의 * (곱하기)
  • {NumpadDiv} : 숫자패드의 / (나누기)
  • {NumpadAdd} : 숫자패드의 + (더하기)
  • {NumpadSub} : 숫자패드의 - (빼기)
  • {NumpadDel} : 숫자패드의 Del
  • {NumpadIns} : 숫자패드의 ins
  • {NumpadClear} : 숫자패드의 Clear키
  • {NumpadUp} {NumpadDown} {NumpadLeft} {NumpadRight} : 숫자 패드의  ↑ ↓ ← → 키
  • {NumpadHome} : 숫자패드의 Home 키
  • {NumpadEnd} : 숫자패드의 End
  • {NumpadPgUp} {NumpadPgDn} : 숫자패드의 Page up과 Page Down

 

숫자패드 키는 키보드마다 구성이 약간씩 다르지만 이경우 모두 들어갑니다.

프로그램이나 상황에 따라 본 키보드와 숫자패드가 구별되는 상황에서 쓰시면 됩니다.

 

 

반응형

+ Recent posts