Send, SendRaw, SendInput, SendPlay, SendEvent

시률레이트된 키눌림과 마우스 클릭을 활성 창에 전송합니다.

Send Keys
SendRaw Keys
SendInput Keys
SendPlay Keys
SendEvent Keys

매개변수

Keys

전송할 키 연속열. 다른 명령어처럼, 첫 매개변수 앞의 쉼표는 선택적입니다.

By default (that is, if neither SendRaw nor the Raw mode or Text mode is used), the characters ^+!#{} have a special meaning. The characters ^+!# represent the modifier keys Ctrl, Shift, Alt and Win. They affect only the very next key. To send the corresponding modifier key on its own, enclose the key name in braces. To just press (hold down) or release the key, follow the key name with the word "down" or "up" as shown below.

심볼 Key Press Release 예제
^ {Ctrl} {Ctrl down} {Ctrl up} Send ^{Home} presses Ctrl+Home
+ {Shift} {Shift down} {Shift up} Send +abC sends the text "AbC"
Send !+a presses Alt+Shift+A
! {Alt} {Alt down} {Alt up} Send !a presses Alt+A
# {LWin}
{RWin}
{LWin down}
{RWin down}
{LWin up}
{RWin up}
Send #e holds down Win and then presses E

주의: As capital letters are produced by sending Shift, A produces a different effect in some programs than a. For example, !A presses Alt+Shift+A and !a presses Alt+A. 잘 모르겠으면, 소문자를 사용하십시오.

The characters {} are used to enclose key names and other options, and to send special characters literally. For example, {Tab} is Tab and {!} is a literal exclamation mark.

[v1.1.27+]: Enclosing a plain ASCII letter (a-z or A-Z) in braces forces it to be sent as the corresponding virtual keycode, even if the character does not exist on the current keyboard layout. In other words, Send a produces the letter "a" while Send {a} may or may not produce "a", depending on the keyboard layout. For details, see the remarks below.

Send variants

Send: 기본값으로, Send는 SendEvent와 동일하지만; SendMode를 통하여 SendInput이나 SendPlay와 같게 만들 수 있습니다 .

SendRaw: Similar to Send, except that all characters in Keys are interpreted and sent literally. See Raw mode for details.

SendInput그리고 SendPlay [v1.0.43+]: SendInput 그리고 SendPlay는 Send와 같은 구문을 사용합니다. 그러나 일반적으로 더 빠르고 더 신뢰성이 있습니다. 게다가, 전송하는 동안에 물리적 키눌림과 마우스 클릭을 버퍼 처리해 줍니다. 그 덕분에 사용자의 키눌림이 흩어지지 않고 온전하게 전송됩니다. SendMode을 사용하면 Send를 SendInput 또는 SendPlay과 똑같이 만들 수 있습니다. 각 모드에 관하여 더 자세한 정보는 아래의 SendInput 그리고 SendPlay를 참조하십시오.

SendEvent [v1.0.43+]: SendEvent는 1.0.43-이전의 Send 명령어와 같은 방법으로 키눌림을 전송합니다. 키눌림의 전송 비율은 SetKeyDelay로 결정됩니다.

Special modes

The following modes affect the interpretation of the characters in Keys or the behavior of key-sending commands such as Send, SendInput, SendPlay, SendEvent and ControlSend. These modes must be specified as {x} in Keys, where x is either Raw, Text, or Blind. 예를 들어, {Raw}.

Raw mode

The Raw mode can be either enabled with {Raw}, SendRaw or ControlSendRaw, which causes all subsequent characters, including the special characters ^+!#{}, to be interpreted literally rather than translating {Enter} to Enter, ^c to Ctrl+C, etc. For example, both Send {Raw}{Tab} and SendRaw {Tab} send {Tab} instead of Tab.

The Raw mode does not affect the interpretation of escape sequences, variable references and expressions. For example, SendRaw ``100`% sends the string `100%. When using ControlSend, it is also necessary to escape literal commas (`,).

Text mode [v1.1.27+]

The Text mode can be enabled with {Text}, which is similar to the Raw mode, except that no attempt is made to translate characters (other than `r, `n, `t and `b) to keycodes; instead, the fallback method is used for all of the remaining characters. For SendEvent, SendInput and ControlSend, this improves reliability because the characters are much less dependent on correct modifier state. This mode can be combined with the Blind mode to avoid releasing any modifier keys: Send {Blind}{Text}your text. However, some applications require that the modifier keys be released.

`n, `r and `r`n are all translated to a single Enter, unlike the default behavior and Raw mode, which translate `r`n to two Enter. `t is translated to Tab and `b to Backspace, but all other characters are sent without translation.

[v1.1.29+]: Like the Blind mode, the Text mode ignores SetStoreCapsLockMode (that is, the state of CapsLock is not changed) and does not wait for Win to be released. This is because the Text mode typically does not depend on the state of CapsLock and cannot trigger the system Win+L hotkey. However, this only applies when Keys begins with {Text} or {Blind}{Text}.

Blind mode

The Blind mode can be enabled with {Blind}, which gives the script more control by disabling a number of things that are normally done automatically to make things work as expected. {Blind} must be the first item in the string to enable the Blind mode. It has the following effects:

맹목-모드는 키를 리맵핑할 때 내부적으로 사용됩니다. 예를 들어, 리맵핑 a::b는: 1) "a"를 타자하면 "b"를 생산하고; 2) 대문자 "A"를 타자하면 대문자 "B"를 생산하며 ; 그리고 3) Ctrl+A를 타자하면 Ctrl+B를 생산합니다.

{Blind} is not supported by SendRaw or ControlSendRaw; use {Blind}{Raw} instead.

SendPlay도 완벽하게는 지원하지 못합니다. 특히 수식 키들을 다룰 때 (Ctrl, Alt, Shift, 그리고 Win) 지원하지 못합니다.

키 이름

다음 테이블은 전송이 가능한 특수 키들을 나열합니다. (각 키 이름은 활괄호로 둘러싸야 합니다):

키 이름 설명
{F1} - {F24} 기능 키. 예를 들어: {F12} is F12.
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{Enter} Enter on the main keyboard
{Escape} 또는 {Esc} Esc
{Space} Space (스페이스가 전송할 문자열의 앞이나 뒤에 나타날 때 필요합니다 -- 가운데 있는 스페이스는 문자 그대로 스페이스입니다)
{Tab} Tab
{Backspace} 또는 {BS} Backspace
{Delete} 또는 {Del} Del
{Insert} 또는 {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 (Win 2k/XP이라면 SetCapsLockState을 사용하는 편이 더 신뢰성이 높습니다). {CapsLock}를 전송하려면 미리 SetStoreCapsLockMode Off이 되어 있어야 합니다.
{ScrollLock} ScrollLock (다음도 참조: SetScrollLockState)
{NumLock} NumLock (다음도 참조: SetNumLockState)
{Control} 또는 {Ctrl} Ctrl (기술 정보: 좌우 구분 없는 가상 키를 보내지만 스캔 코드는 왼쪽을 전송함)
{LControl} 또는 {LCtrl} 왼쪽 Ctrl 키 (기술 정보: 좌우 구분 없는 가상 키가 아니라 왼쪽 가상 키를 전송함)
{RControl} 또는 {RCtrl} 오른쪽 Ctrl
{Control down} 또는 {Ctrl down} {Ctrl up}이 전송될 때까지 Ctrl를 누릅니다. To hold down the left or right key instead, replace Ctrl with LCtrl or RCtrl.
{Alt} Alt (기술 정보: 좌우 구분 없는 가상 키를 보내지만 스캔 코드는 왼쪽을 전송함)
{LAlt} 왼쪽 Alt 키 (기술 정보: 좌우 구분 없는 가상 키가 아니라 왼쪽 가상 키를 전송함)
{RAlt} 오른쪽 Alt 키 (또는 키보드 레이아웃에 따라 AltGr)
{Alt down} {Alt up}이 전송될 때까지 Alt를 누릅니다. To hold down the left or right key instead, replace Alt with LAlt or RAlt.
{Shift} Shift (기술 정보: 좌우 구분 없는 가상 키를 보내지만 스캔 코드는 왼쪽을 전송함)
{LShift} 왼쪽 Shift 키 (기술 정보: 좌우 구분 없는 가상 키가 아니라 왼쪽 가상 키를 전송함)
{RShift} 오른쪽 Shift
{Shift down} {Shift up}이 전송될 때까지 Shift를 누릅니다. To hold down the left or right key instead, replace Shift with LShift or RShift.
{LWin} 왼쪽 Win
{RWin} 오른쪽 Win
{LWin down} {LWin up}이 전송될 때까지 왼쪽 Win를 누릅니다
{RWin down} {RWin up}이 전송될 때까지 오른쪽 Win를 누릅니다
{AppsKey} Menu 키 (오른쪽 클릭 또는 문맥 메뉴를 요청합니다)
{Sleep} Sleep.
{ASC nnnnn}

Alt+nnnnn 키패드 조합을 전송합니다. 이를 이용하여 키보드에 존재하지 않는 특수 문자들을 발생시킬 수 있습니다. ASCII 문자들을 발생시키려면, 1부터 255 사이의 숫자를 지정하십시오. (대부분의 언어에 표준인) ANSI 문자를 발생시키려면, 128부터 255 사이의 숫자를 지정하되, 앞에 0을 덧붙이십시오. 예, {Asc 0133}.

유니코드 문자는 256부터 65535 사이의 숫자를 지정해 발생시킬 수 있습니다 (앞에 0을 붙이지 않음). 그렇지만, 이 방법은 모든 어플리케이션에서 지원되지는 않습니다. 대안은 아래 섹션을 참조하십시오.

{U+nnnn}

[AHK_L 24+]: 유니코드 문자를 전송합니다. nnnn은 앞에 0을 제외하고 문자의 십육진 값입니다. 유니코드 버전의 오토핫키에서는 자동으로 Send와 ControlSend이 유니코드 텍스트를 지원하기 때문에 이 방법이 필요하지 않습니다.

SendInput() 또는 WM_CHAR을 이용해 그 문자를 전송할 수 있습니다. 현재의 Send 모드는 아무 효과가 없습니다. Characters sent this way usually do not trigger shortcut keys or hotkeys.

{vkXX}
{scYYY}
{vkXXscYYY}

가상 키 XX와 스캔 코드 YYY인 키눌림을 전송합니다. 예를 들어: Send {vkFFsc159}. sc 또는 vk 부분을 생략하면, 그 자리에 가장 적절한 값이 전송됩니다.

XX와 YYY에 대한 값들은 십육진수이고 보통 메인 창이 View->Key history 메뉴 항목을 통하여 알아낼 수 있습니다. 다음 참조: 특수 키

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} 넘패드 숫자 키 (NumLock을 켜면 보임). 예를 들어: {Numpad5} is 5.
{NumpadDot} . (넘패드 점) (NumLock을 켜면 보임).
{NumpadEnter} Enter on keypad
{NumpadMult} * (넘패드 곱셈)
{NumpadDiv} / (넘패드 나눗셈)
{NumpadAdd} + (넘패드 덧셈)
{NumpadSub} - (넘패드 뺄셈)
{NumpadDel} 키패드의 Del (이 키와 아래의 넘패드 키들은 NumLock이 꺼져 있을 때 사용됩니다)
{NumpadIns} Ins on keypad
{NumpadClear} 키패드의 소거 키 (보통 NumLock이 꺼져 있을 때 5 키).
{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} 브라우저의 "back" 버튼
{Browser_Forward} 브라우저의 "forward" 버튼
{Browser_Refresh} 브라우저의 "refresh" 버튼
{Browser_Stop} 브라우저의 "stop" 버튼
{Browser_Search} 브라우저의 "search" 버튼
{Browser_Favorites} 브라우저의 "favorites" 버튼
{Browser_Home} 브라우저를 기동하고 홈페이지로 갑니다
{Volume_Mute} 마스터 볼륨 음소거. 보통 SoundSet, +1, , mute와 동등함.
{Volume_Down} 마스터 볼륨을 줄입니다. 보통 SoundSet -5와 동등.
{Volume_Up} 마스터 볼륨을 높입니다. 보통 SoundSet +5와 동등함.
{Media_Next} 미디어 플레이어에서 다음 트랙으로
{Media_Prev} 미디어 플레이어에서 이전 트랙으로
{Media_Stop} 미디어 플레이어 중지
{Media_Play_Pause} 미디어 플레이어 정지/연주
{Launch_Mail} 이메일 어플리케이션 기동
{Launch_Media} 미디어 플레이어 기동
{Launch_App1} 사용자 app1 기동
{Launch_App2} 사용자 app2 기동
{PrintScreen} PrtSc
{CtrlBreak} Ctrl+Pause
{Pause} 정지
{Click [Options]}
[v1.0.43+]
Click 명령어와 같은 옵션을 사용하여 마우스 클릭을 전송합니다. 예를 들어, Send {Click}은 마우스 커서의 현재 위치에 왼 마우스 버튼을 한 번 클릭합니다. 그리고 Send {Click 100 200}는 좌표 100, 200에 클릭합니다 (CoordMode에 기반). 클릭 없이 마우스를 이동시키려면, 좌표 다음에 0을 지정하십시오; 예를 들어: Send {Click 100 200 0}. 마우스 클릭 사이의 지연 시간은 SetMouseDelay로 결정됩니다 (SetKeyDelay로 결정되지 않습니다).
{WheelDown}, {WheelUp}, {WheelLeft}, {WheelRight}, {LButton}, {RButton}, {MButton}, {XButton1}, {XButton2}

커서의 현재 위치에 마우스 버튼 이벤트를 전송합니다 (위치와 기타 옵션에 관하여 통제하려면, 위의 {Click}을 사용하십시오). 마우스 클릭 사이의 지연 시간은 SetMouseDelay으로 결정됩니다. WheelLeft/Right는 [v1.0.48+]을 요구하지만, 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: ^+!#{}. 문자열 {Raw}는 문자열의 시작부터 일어날 필요는 없지만, 일단 지정되면, 문자열의 나머지에 효과를 유지합니다.
{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: ^+!#{}. 문자열 {Text}는 문자열의 시작부터 일어날 필요는 없지만, 일단 지정되면, 문자열의 나머지에 효과를 유지합니다.

키를 반복하기 또는 키를 누르고 있기

키를 반복하려면: 키의 이름에 활괄호를 두르고 다음에 반복할 횟수를 지정합니다. 예를 들어:

Send {DEL 4}  ; Delete 키를 4 번 누릅니다.
Send {S 30}   ; 대문자 S를 30개 전송합니다.
Send +{TAB 4}  ; Shift-Tab을 4 번 누릅니다.

키를 누르고 있거나 떼기: 키의 이름을 활괄호로 둘러싸고 다음에 단어 Down 또는 Up을 지정합니다. 예를 들어:

Send {b down}{b up}
Send {TAB down}{TAB up}
Send {Up down}  ; 위 화살표 키를 누릅니다.
Sleep 1000  ; 1초 동안 누르고 있습니다.
Send {Up up}  ; 위 화살표 키를 뗍니다.

키가 위의 방법을 통하여 눌릴 때, 자동 반복을 시작하지 않습니다. 반면에 물리적으로 키를 누르고 있으면 자동 반복을 시작합니다 (이것은 자동-반복이 드라이버/하드웨어의 특징이기 때문입니다). 그렇지만, Loop를 사용하면 자동 반복을 흉내낼 수 있습니다. 다음 예제는 20 개의 탭 키눌림을 전송합니다:

Loop 20
{
    Send {Tab down}  ; 자동-반복은 연속적인 누르기 이벤트로 구성됩니다 (업-이벤트 없음).
    Sleep 30  ; 키 눌림 사이에 대기하는 밀리 초 (또는 SetKeyDelay를 사용하십시오).
}
Send {Tab up}  ; 키를 뗍니다.

By default, Send will not automatically release a modifier key (Control, Shift, Alt, and Win) if that modifier key was "pressed down" by sending it. For example, Send a may behave similar to Send {Blind}{Ctrl up}a{Ctrl down} if the user is physically holding Ctrl, but Send {Ctrl Down} followed by Send a will produce Ctrl+A. DownTemp and DownR can be used to override this behavior. DownTemp and DownR have the same effect as Down except for the modifier keys (Control, Shift, Alt, and Win).

DownTemp는 연이은 전송에 키가 영구히 눌려 있는 것은 아니며, 그러므로 키눌림이 요구하면 언제든지 떼어도 좋다고 알려줍니다. 예를 들어, Send {Control DownTemp} 다음에 Send a가 따라오면 보통의 A 키눌림을 생산하며, Ctrl+A 키눌림을 생산하지 않습니다. Any use of Send may potentially release the modifier permanently, so DownTemp is not ideal for remapping modifier keys.

[v1.1.27+]: DownR (where "R" stands for remapping, which is its main use) tells subsequent sends that if the key is automatically released, it should be pressed down again when send is finished. For example, Send {Control DownR} followed later by Send a would produce A, not Ctrl+A, but will leave Ctrl in the pressed state for use with keyboard shortcuts. In other words, DownR has an effect similar to physically pressing the key.

If a character does not correspond to a virtual key on the current keyboard layout, it cannot be "pressed" or "released". For example, Send {µ up} has no effect on most layouts, and Send {µ down} is equivalent to Send µ.

총평

Characters vs. keys: By default, characters are sent by first translating them to keystrokes. If this translation is not possible (that is, if the current keyboard layout does not contain a key or key combination which produces that character), the character is sent by one of following fallback methods:

Note: Characters sent using any of the above methods usually do not trigger keyboard shortcuts or hotkeys.

[v1.1.27+]: For characters in the range a-z or A-Z (plain ASCII letters), each character which does not exist in the current keyboard layout may be sent either as a character or as the corresponding virtual keycode (vk41-vk5A):

If the letter exists in the current keyboard layout, it is always sent as whichever keycode the layout associates with that letter (unless the Text mode is used, in which case the character is sent by other means). In other words, the section above is only relevant for non-Latin based layouts such as Russian.

Modifier State: When Send is required to change the state of the Win or Alt modifier keys (such as if the user was holding one of those keys), it may inject additional keystrokes (Ctrl by default) to prevent the Start menu or window menu from appearing. 자세한 것은 #MenuMaskKey를 참조하십시오.

SendInput/SendPlay와 비교한 BlockInput: BlockInput 명령어는 사용자가 물리적으로 타자하는 키 눌림이 흉내낸 키눌림에 방해를 받지 않도록 막아 주지만, 종종 SendInput이나 SendPlay를 사용하면 더 좋은 경우가 있습니다. 키눌림과 마우스 클릭이 인터럽트가 불가능합니다. BlockInput과 다르게, SendInput/Play 는 전송하는 동안 사용자가 타자한 키들을 버리지 않습니다; 대신, 그런 키들은 버퍼 처리되었다가 나중에 전송됩니다.

엄청나게 많은 키눌림을 전송할 경우, 계속 섹션을 사용하면 가독성과 유지관리성을 개선할 수 있습니다.

운영 체제는 Ctrl+Alt+Del 조합을 허용하지 않기 때문에, Send ^!{Delete}와 같이 하더라도 아무 효과가 없습니다.

Send는 아무 효과가 없을 수 있습니다 Windows Vista 이후 활성 창이 관리자 권한으로 실행중인데 스크립트는 관리자 권한이 없으면 그렇습니다. 이것은 사용자 인터페이스 권한 격리(User Interface Privilege Isolation) 보안 매커니즘 때문입니다.

SendInput [v1.0.43+]

SendInput은 일반적으로 키눌림과 마우스 클릭을 전송하는 데 선호되는 방법입니다. 왜냐하면 속도가 월등하고 신뢰성이 있기 때문입니다. 대부분의 상황에서, SendInput은 거의 즉시 실행됩니다. 기다란 문자열을 보내도 순식간입니다. SendInput은 빠르기 때문에, 더 신뢰성이 있습니다. 왜냐하면 다른 창이 의도치 않게 나타나거나 키눌림을 가로 채는 빈도가 줄어들기 때문입니다. SendInput 동안에 사용자가 타자하면 연기되었다가 나중에 처리되므로 신뢰성은 더욱 개선됩니다.

다른 전송 모드와 다르게, 운영 체제는 SendInput을 대략 5000 문자로 제한합니다 (이 값은 운영 체제의 버전과 수행성능 설정에 따라 달라집니다). 이 제한을 넘어서 문자들과 이벤트들은 전송되지 않습니다.

주의: SendInput은 SetKeyDelay를 무시합니다. 왜냐하면 운영 체제가 이 모드에서는 지연 시간을 지원하지 않기 때문입니다. 그렇지만, 아래에 기술한 상황 아래에서 SendInput은 SendEvent에 의존합니다. SendEvent는 SetKeyDelay -1, 0를 사용합니다 (단, SendEvent의 키 지연시간이(KeyDelay) -1,-1인 경우는 예외입니다. 이 경우는 -1,-1이 사용됩니다). SendInput이 SendPlay에 의존할 때, SendPlay의 키 지연시간(KeyDelay)을 사용합니다.

If a script other than the one executing SendInput has a low-level keyboard hook installed, SendInput automatically reverts to SendEvent (or SendPlay if SendMode InputThenPlay is in effect). 외부 갈고리의 존재 때문에 SendInput의 모든 장점이 가려집니다. 그 때문에 SendPlay와 SendEvent에 비해 열등합니다. 그렇지만, SendInput은 [AutoHotkey v1.0.43+]이 아니라면 저-수준 갈고리를 탐지할 수 없기 때문에, 이런 경우는 의존할 것이 없으므로 SendPlay/Event 보다 신뢰성이 더 떨어집니다.

SendInput이 {Click}와 같은 수단을 통하여 마우스 클릭을 전송할 때 그리고 CoordMode Mouse, Relative가 켜져 있을 때 (기본값), 모든 클릭은 전송이 시작될 때 활성화 된 창에 상대적입니다. 그러므로, SendInput이 의도적으로 (알트-탭 같은 수단으로) 또다른 창을 활성화하면, 같은 명령어 안에서 연이은 클릭의 좌표들은 오류가 일어납니다. 왜냐하면 여전히 새 창이 아니라 예전 창에 상대적이기 때문입니다.

SendPlay [v1.0.43+]

Warning: SendPlay may have no effect at all if UAC is enabled, even if the script is running as an administrator. For more information, refer to the FAQ.

SendPlay의 가장 큰 장점은 다른 모드와 다르게 광범위한 게임에서 마우스 클릭과 키눌림을 "재시연"할 수 있다는 것입니다. 예를 들어, 특정한 게임은 오직 SendPlay 옵션이이 있을 경우에만 핫스트링을 받아 들입니다.

세 가지 전송 모드 중에서, SendPlay가 가장 이상합니다. 왜냐하면 키눌림과 마우스 클릭을 사실상 흉내내지 않기 때문입니다. 대신에, 일련의 이벤트 (메시지)를 만들어 냅니다. 그 메시지들이 활성 창으로 직접 흘러 들어갑니다 (ControlSend와 비슷하게, 그러나 낮은 수준에서). 결과적으로, SendPlay는 핫키나 핫트링을 촉발시키지 않습니다.

SendInput처럼, SendPlay의 키눌림은 사용자가 타자한 키눌림 때문에 흩어지지 않습니다. 그래서, 사용자가 어쩌다가 SendPlay 중에 타자를 하더라도, 그런 키눌림은 연기되었다가 나중에 처리됩니다.

SendPlay는 SendInput에 비해 상당히 느립니다. 그러나 보통 전통적인 SendEvent 모드 보다는 빠릅니다 (KeyDelay가 -1일 경우에도 마찬가지입니다).

Both Win (LWin and RWin) are automatically blocked during a SendPlay if the keyboard hook is installed. 이 덕분에 전송하는 동안에 사용자가 우발적으로 Win를 눌러도 시작 메뉴가 나타나지 않습니다. 대조적으로, LWin와 RWin 말고 다른 키들은 막아줄 필요가 있습니다. 왜냐하면 운영 체제가 자동으로 키들을 (버퍼 처리하여) SendPlay가 끝날 때까지 연기해 주기 때문입니다.

SendPlay는 SetKeyDelaySetMouseDelay의 표준 설정을 사용하지 않습니다. 대신에, 기본값으로 전혀 대기 시간이 없습니다. 이 대기 시간은 다음 예제와 같이 바꿀 수 있습니다:

SetKeyDelay, 0, 10, Play  ; SendPlay 모드에서는 0과 -1이 같음을 주목하십시오.
SetMouseDelay, 10, Play

SendPlay는 CapsLock, NumLock, 또는 ScrollLock를 켜고 끌 수 없습니다. 비슷하게, GetKeyState()로 보이는 키의 상태를 바꿀 수 없습니다. 단, 그 키눌림들이 스크립트의 창 중에 하나로 전송된다면 예외입니다. 그 때까지, 왼쪽/오른쪽 수식키에 변화가 있다면 (예, RControl) 오직 좌우 구분 없는 수식키를 통해서만 탐지할 수 있습니다 (예, Control). 또, SendPlay는 SendMode 페이지에 기술된 다른 제한도 있습니다.

SendInput 그리고 SendEvent과 다르게, 사용자는 Ctrl+Alt+Del이나 Ctrl+Esc를 눌러서 SendPlay를 인터럽트할 수 있습니다. 이런 일이 일어날 때, 나머지 키눌림은 전송되지 않지만 스크립트른 마치 SendPlay가 정상적으로 전송을 완료한 것처럼 실행을 계속합니다.

SendPlay는 send LWin과 RWin 이벤트를 보낼 수 있지만, 창에 직접적으로 전송합니다. 운영 체제 고유의 기능을 수행하지 않습니다. 이를 우회하려면, SendEvent를 사용하십시오. 예를 들어, SendEvent #r는 시작 메뉴의 실행 대화상자를 보여줄 것입니다.

SendMode, SetKeyDelay, SetStoreCapsLockMode, 피신 연속열 (예, `%), ControlSend, BlockInput, 핫스트링, WinActivate

예제

두 줄의 서명을 타자합니다.

Send Sincerely,{enter}John Smith

File->Save 메뉴를 선택합니다 (Alt+F를 누른 다음 S).

Send !fs

텍스트 끝으로 점프해서 네 개의 shift+left-arrow 키눌림을 전송합니다.

Send {End}+{Left 4}

Sends a long series of raw characters via the fastest method.

SendInput {Raw}A long series of raw characters sent via the fastest method.