반응형

안녕하세요 오늘은 키 입력에대해서 배워볼 시간입니다.

키입력은 무엇일까요 ?

 

우리가 키보드를 누르는 행위와 마우스를 "직접적으로" 컴퓨터와 연결된 하드웨어를 통해

키입력을 인풋합니다. 

하드웨어식 키입력

 

하지만 오토핫키를 이용한 키입력은 "소프트웨어" 식 키입력입니다.

*CLASS DD 같이 소프트웨어 입력 -> 하드웨어로 입력으로 인식을 바꾸는 라이브러리가 존재합니다.

 

 

우리는 요기서 키입력을 두가지로 나눌 수 있습니다.

  • 활성화된 창에 키입력을 전달하는
  • 비활성 된 창에 키입력을 전달하는

2가지의 종류로 나눌 수 있는데요,

기본적인 구문을 확인해봅시다,

 

 

활성화 된 창에 키입력을 전달하는 기본적인 구문

Send: 기본적으로 Send는 SendEvent와 동의어이지만 SendInput 또는 SendPlay와 동의어로 만들 수 있습니다.

F1::
Send,안녕하세요#!@#!@

;#!@#!@ 문구는 출력이 안되는것을 볼 수있다.


SendRaw: 키의 모든 문자가 문자 그대로 해석되고 전송된다는 점을 제외하고는 보내기와 유사합니다. 자세한 내용은 원시 모드를 참조하십시오.

F1::
SendRaw,안녕하세요#!@#!@

;그대로 문자가 출력되는 것을 알 수있다.

 

SendInput: SendInput 및 SendPlay는 Send와 동일한 구문을 사용하지만 일반적으로 더 빠르고 안정적입니다. 또한 전송 중에 물리적 키보드 또는 마우스 활동을 버퍼링하므로 사용자의 키 입력이 전송되는 키 입력과 간섭되지 않습니다. SendMode를 사용하여 SendInput 또는 SendPlay와 동의어로 만들 수 있습니다. 각 모드에 대한 자세한 내용은 아래 입력 보내기 및 재생 보내기를 참조하십시오.

F1::
SendInput,안녕하세요#!@#!@

;안녕하세요만 출력됨


SendEvent : SendEvent는 1.0.43 이전 Send 명령과 동일한 방법을 사용하여 키 입력을 보냅니다. 키 입력이 전송되는 속도는 SetKeyDelay에 의해 결정됩니다.

F1::
SendEvent ,안녕하세요#!@#!@

;안녕하세요만 출력됨

보통은 활성화된 창에서 키 입력을 전달하려면 상황에 맞게 사용합니다.

 

 

 

 

단어를 입력하였으면 이제 키 조합에대해서 알아볼텐데요

컨트롤 V 컨트롤 알트 등등,, 키조합이 필요할때는 분명히 있습니다.

F1::
send,{ctrl down}
send,{ctrl up}

;컨트롤을 눌렀다가 떄라

return



send,{ctrl down}
sleep,1000
send,{ctrl up}
;컨트롤을 1초동안 눌렀다가 때라 


send,{ctrl down}v{ctrl up}
;컨트롤 V를 눌렀다가 컨트롤 키를 때라
;*이 구문은 간혹 컨트롤 v가 안눌릴때가 있습니다. 사용을 권고드리지 않습니다. 

send,^v
;컨트롤키와 v를 동시에 눌러라
;*이 구문은 간혹 컨트롤 v가 안눌릴때가 있습니다. 사용을 권고드리지 않습니다. 

send,{Shift down}{Ctrl down}v{Shift up}{Ctrl up}
send,{Shift down}{Ctrl down}v{Ctrl up}{Shift up}
;어떤 것을 먼저 때느냐의 차이이지만, 그 속도를 비교하기에는 미미하므로 아무렇게 사용하셔두됩니다.

send,shift down
;shift down 이라는 글자를 타이핑 합니다.



Ver:= "변수"
send,% Ver
;변수의 표현식은 차후 배울 예정입니다. 

ver = "변수"
send,% Ver
;변수의 표현식은 차후 배울 예정입니다. := / = 의차이점입니다.

Ver:= "변수"
send,%Ver%
;% ver / %ver% (띄어쓰기 중요) 의 표현방식도 있습니다. 

ver:= "a"
ver_a:= "b"
send,% ver . ver_a
; . ver 과 ver_a를 합쳐서 출력 - send 입력을 전달합니다.

등등 여러가지의 방법이 있습니다

 

이하 아래 키코드를 다양하게 사용하는 방법을 참조하여 작업을 해보시면 편하실 것입니다.

첨부자료는 각 F1 - F12 의 키를 통해 작동되는 구조이므로, 메모장을 키고 테스트를 해보시길 권장드립니다. 

 

Send 예제.ahk
0.00MB

 

 

 

 

 

{F1} - {F24} Function keys. For example: {F12} is F12.
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{Enter} Enter on the main keyboard
{Escape} or {Esc} Esc
{Space} Space (this is only needed for spaces that appear either at the beginning or the end of the string to be sent -- ones in the middle can be literal spaces)
{Tab} Tab
{Backspace} or {BS} Backspace
{Delete} or {Del} Del
{Insert} or {Ins} Ins
{Up}  (up arrow) on main keyboard
{Down}  (down arrow) on main keyboard
{Left}  (left arrow) on main keyboard
{Right}  (right arrow) on main keyboard
{Home} Home on main keyboard
{End} End on main keyboard
{PgUp} PgUp on main keyboard
{PgDn} PgDn on main keyboard
{CapsLock} CapsLock (using SetCapsLockState is more reliable on Win 2k/XP). Sending {CapsLock} might require SetStoreCapsLockMode Off beforehand.
{ScrollLock} ScrollLock (see also: SetScrollLockState)
{NumLock} NumLock (see also: SetNumLockState)
{Control} or {Ctrl} Ctrl (technical info: sends the neutral virtual key but the left scan code)
{LControl} or {LCtrl} Left Ctrl (technical info: sends the left virtual key rather than the neutral one)
{RControl} or {RCtrl} Right Ctrl
{Control down} or {Ctrl down} Holds Ctrl down until {Ctrl up} is sent. To hold down the left or right key instead, replace Ctrl with LCtrl or RCtrl.
{Alt} Alt (technical info: sends the neutral virtual key but the left scan code)
{LAlt} Left Alt (technical info: sends the left virtual key rather than the neutral one)
{RAlt} Right Alt (or AltGr, depending on keyboard layout)
{Alt down} Holds Alt down until {Alt up} is sent. To hold down the left or right key instead, replace Alt with LAlt or RAlt.
{Shift} Shift (technical info: sends the neutral virtual key but the left scan code)
{LShift} Left Shift (technical info: sends the left virtual key rather than the neutral one)
{RShift} Right Shift
{Shift down} Holds Shift down until {Shift up} is sent. To hold down the left or right key instead, replace Shift with LShift or RShift.
{LWin} Left Win
{RWin} Right Win
{LWin down} Holds the left Win down until {LWin up} is sent
{RWin down} Holds the right Win down until {RWin up} is sent
{AppsKey} Menu (invokes the right-click or context menu)
{Sleep} Sleep.
{ASC nnnnn} Sends an Alt+nnnnn keypad combination, which can be used to generate special characters that don't exist on the keyboard. To generate ASCII characters, specify a number between 1 and 255. To generate ANSI characters (standard in most languages), specify a number between 128 and 255, but precede it with a leading zero, e.g. {Asc 0133}.
Unicode characters may be generated by specifying a number between 256 and 65535 (without a leading zero). However, this is not supported by all applications. For alternatives, see the section below.
{U+nnnn} [v1.0.90+]: Sends a Unicode character where nnnn is the hexadecimal value of the character excluding the 0x prefix. This typically isn't needed in Unicode versions of AutoHotkey, where Send and ControlSend automatically support Unicode text.
SendInput() or WM_CHAR is used to send the character and the current Send mode has no effect. Characters sent this way usually do not trigger shortcut keys or hotkeys.
{vkXX}
{scYYY}
{vkXXscYYY}
Sends a keystroke that has virtual key XX and scan code YYY. For example: Send {vkFFsc159}. If the sc or vk portion is omitted, the most appropriate value is sent in its place.
The values for XX and YYY are hexadecimal and can usually be determined from the main window's View->Key history menu item. See also: Special Keys
Warning: Combining vk and sc in this manner is valid only with Send. Prior to [v1.1.27], hotkeys permitted but ignored any non-hexadecimal characters following XX.
{Numpad0} - {Numpad9} Numpad digit keys (as seen when NumLock is ON). For example: {Numpad5} is 5.
{NumpadDot} . (numpad period) (as seen when NumLock is ON).
{NumpadEnter} Enter on keypad
{NumpadMult} * (numpad multiplication)
{NumpadDiv} / (numpad division)
{NumpadAdd} + (numpad addition)
{NumpadSub} - (numpad subtraction)
{NumpadDel} Del on keypad (this key and the following Numpad keys are used when NumLock is OFF)
{NumpadIns} Ins on keypad
{NumpadClear} Clear key on keypad (usually 5 when NumLock is OFF).
{NumpadUp}  (up arrow) on keypad
{NumpadDown}  (down arrow) on keypad
{NumpadLeft}  (left arrow) on keypad
{NumpadRight}  (right arrow) on keypad
{NumpadHome} Home on keypad
{NumpadEnd} End on keypad
{NumpadPgUp} PgUp on keypad
{NumpadPgDn} PgDn on keypad
{Browser_Back} Select the browser "back" button
{Browser_Forward} Select the browser "forward" button
{Browser_Refresh} Select the browser "refresh" button
{Browser_Stop} Select the browser "stop" button
{Browser_Search} Select the browser "search" button
{Browser_Favorites} Select the browser "favorites" button
{Browser_Home} Launch the browser and go to the home page
{Volume_Mute} Mute/unmute the master volume. Usually equivalent to SoundSet, +1, , mute.
{Volume_Down} Reduce the master volume. Usually equivalent to SoundSet -5.
{Volume_Up} Increase the master volume. Usually equivalent to SoundSet +5.
{Media_Next} Select next track in media player
{Media_Prev} Select previous track in media player
{Media_Stop} Stop media player
{Media_Play_Pause} Play/pause media player
{Launch_Mail} Launch the email application
{Launch_Media} Launch media player
{Launch_App1} Launch user app1
{Launch_App2} Launch user app2
{PrintScreen} PrtSc
{CtrlBreak} Ctrl+Pause
{Pause} Pause
{Click [Options]}
[v1.0.43+]
Sends a mouse click using the same options available in the Click command. For example, Send {Click} would click the left mouse button once at the mouse cursor's current position, and Send {Click 100 200} would click at coordinates 100, 200 (based on CoordMode). To move the mouse without clicking, specify 0 after the coordinates; for example: Send {Click 100 200 0}. The delay between mouse clicks is determined by SetMouseDelay (not SetKeyDelay).
{WheelDown}, {WheelUp}, {WheelLeft}, {WheelRight}, {LButton}, {RButton}, {MButton}, {XButton1}, {XButton2} Sends a mouse button event at the cursor's current position (to have control over position and other options, use {Click} above). The delay between mouse clicks is determined by SetMouseDelay. WheelLeft/Right require [v1.0.48+], but have no effect on operating systems older than Windows Vista.
LButton and RButton correspond to the "physical" left and right buttons when used with Send, but the "logical" left and right buttons when used with hotkeys. In other words, if the user has swapped the buttons via system settings, {LButton} performs a logical right click, but a physical left click activates the RButton:: hotkey. Likewise for {RButton} and LButton::. To always perform a logical click, use {Click} instead.
{Blind} Enables the Blind mode, which gives the script more control by disabling a number of things that are normally done automatically to make things generally work as expected. The string {Blind} must occur at the beginning of the string.
{Raw}
[v1.0.43+]
Enables the Raw mode, which causes the following characters to be interpreted literally: ^+!#{}. Although the string {Raw} need not occur at the beginning of the string, once specified, it stays in effect for the remainder of the string.
{Text}
[v1.1.27+]
Enables the Text mode, which sends a stream of characters rather than keystrokes. Like the Raw mode, the Text mode causes the following characters to be interpreted literally: ^+!#{}. Although the string {Text} need not occur at the beginning of the string, once specified, it stays in effect for the remainder of the string.

 

 

 

 

 

 

반응형

+ Recent posts