Send/SendRaw/SendEvent/SendInput/SendPlay

キーストロークを発生させる

Send, Keys
SendRow, Keys
SendEvent, Keys
SendInput, Keys
SendPlay, Keys

Parameters

引数名説明
Keys キーストローク。SetKeyDelayで指定された間隔を空けながら入力される。

Remarks

修飾キー

ホットキーの指定と同じ修飾キー(+=Shift,^=Ctrl,!=Alt,#=Win)をキー名の前につけると、修飾キーを押しながら押したことになる。

キー名

英数字や、特別な意味を持たない記号は、そのまま記述すればよい。
Shiftを押しながら出てくる文字は、Shift+文字のキーが送信される。
その他のキーは、以下のように「{}」で囲んで指定する。

{vkXX}や{vkXXscYYY}のようにして、仮想キーコードがXXのキーや、スキャンコードがYYYのキーを指定可能。

連続した入力

{BS 5}のように、「{}」で囲んで、右に数値を指定すると、複数回押すことができる。

押し下げ、押し上げ

{Ctrl Down}{Ctrl Up}のように、「{}」で囲んで、DownやUpを指定すると、キーを押してそのままにしたり、押されているキーを離したりできる。
修飾キーだけでなく、普通のキーも押しっぱなしにできるようだが、キーリピートは発生しない模様。

修飾キーの自動復元

Sendコマンドが始まるとき、仮想的に修飾キーを離した状態になる。
コマンド終了時に、再びもとの状態に戻される。
この動作は、Keysの最初に「{Blind}」をつけることで無効化できる。

キーボードフックが使われている場合、物理的な押し下げ状態と同じ状態に復元されるが、フックが使用されていない場合、指定時間が経過していれば復元は行わず、指定時間が経過していなければSendコマンド開始前の状態に復元される。
このときの指定時間は#HotkeyModifierTimeout指令で設定可能。

特殊記号のエスケープとエスケープの不要なSendRawコマンド

修飾キーを指定する記号や「{」「}」などは、「{{}}」のように「{}」で囲めば入力できる。
SendRawコマンドは、修飾キーや特殊キー名を解釈せず、Keys引数のテキストをそのままタイプするので、これらの記号をエスケープする必要がなくなる。

通常のSendコマンドおよびControlSendコマンドでは、Keysに「{Raw}」が含まれると、それ以降がSendRawと同じように修飾キーや特殊キー名を解釈せずに送られるようになる。

SendEvent/SendInput/SendPlay

上記の3コマンドは、Sendと機能は同じだが入力生成の実現方式が違う。
Sendコマンドは通常、SendEventと同様の方式を使用するが、SendModeコマンドを使用することでSendInputやSendPlayの方式に変更することができる。
それぞれのモードの違いなどは、SendModeのページ参照。

特殊キー名一覧

特別な意味を持つ文字キーのエスケープ
Send Command Resulting Keypress
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
特殊キー
Send Command Resulting Keypress
{F1} - {F24} ファンクションキー
{ENTER} Enterキー
{ESCAPE} or {ESC} ESCAPE
{SPACE} SPACE(引数の最初や最後以外は、普通に半角スペースでよい。)
{TAB} TAB
{BACKSPACE} or {BS} Backspace
{DELETE} or {DEL} Delete
{INSERT} or {INS} Insert
{UP} 矢印キーの上
{DOWN} 矢印キーの下
{LEFT} 矢印キーの左
{RIGHT} 矢印キーの右
{HOME} Home
{END} End
{PGUP} PageUp
{PGDN} PageDown
{APPSKEY} アプリケーションキー(コンテキストメニューが出たりする奴)
{SLEEP} SLEEP
{PRINTSCREEN} PRINTSCR
{CTRLBREAK} Ctrl+break
{PAUSE} PAUSE
Lock系
Send Command Resulting Keypress
{CapsLock} CapsLockキー(SetCapsLockStateで確実に状態を制御できる(NT系のみ))
{ScrollLock} ScrollLock
{NumLock} NumLock
修飾キー
Send Command Resulting Keypress
{CONTROL} or {CTRL} Ctrlキー
{LCONTROL} or {LCTRL} 左のCtrlキー
{RCONTROL} or {RCTRL} 右のCtrlキー
{CONTROLDOWN} or {CtrlDown} Ctrlキーを押し下げ状態にする。左右を明示的に指定するには、「{RCtrl Down}」のようにする。
{CONTROLUP} or {CtrlUp} 押し下げ状態を解除する
{ALT} ALT
{LALT} 左Alt
{RALT} 右Alt
{ALTDOWN} Altキーを押し下げ状態にする。
{SHIFT} SHIFT
{LSHIFT} 左Shift
{RSHIFT} 右Shift
{SHIFTDOWN} Shiftキーを押し下げ状態にする
{LWIN} 左Windowsキー
{RWIN} 右Windowsキー
{LWINDOWN} 左Windowsキーを押し下げ状態にする
{RWINDOWN} 右Windowsキーを押し下げ状態にする
テンキー
Send Command Resulting Keypress
{Numpad0} - {Numpad9} テンキーの数字キー
{NumpadDot} テンキーの「.」
{NumpadEnter} Enter key on keypad
{NumpadMult} Numpad Multiply
{NumpadDiv} Numpad Divide
{NumpadAdd} Numpad Add
{NumpadSub} Numpad Subtract
{NumpadDel} Delete key on keypad (this key and the following Numpad keys are used when Numlock is OFF)
{NumpadIns} Insert key on keypad
{NumpadClear} Clear key on keypad (usually the '5' key).
{NumpadUp} Cursor up key on keypad
{NumpadDown} Cursor down key on keypad
{NumpadLeft} Cursor left key on keypad
{NumpadRight} Cursor right key on keypad
{NumpadHome} Home key on keypad
{NumpadEnd} End key on keypad
{NumpadPgUp} Page up key on keypad
{NumpadPgDn} Page down key on keypad
多機能キーボードの特殊キー
Send Command Resulting Keypress
{BROWSER_BACK} 2000/XP Only: Select the browser "back" button
{BROWSER_FORWARD} 2000/XP Only: Select the browser "forward" button
{BROWSER_REFRESH} 2000/XP Only: Select the browser "refresh" button
{BROWSER_STOP} 2000/XP Only: Select the browser "stop" button
{BROWSER_SEARCH} 2000/XP Only: Select the browser "search" button
{BROWSER_FAVORITES} 2000/XP Only: Select the browser "favorites" button
{BROWSER_HOME} 2000/XP Only: Launch the browser and go to the home page
{VOLUME_MUTE} 2000/XP Only: Mute the volume
{VOLUME_DOWN} 2000/XP Only: Reduce the volume
{VOLUME_UP} 2000/XP Only: Increase the volume
{MEDIA_NEXT} 2000/XP Only: Select next track in media player
{MEDIA_PREV} 2000/XP Only: Select previous track in media player
{MEDIA_STOP} 2000/XP Only: Stop media player
{MEDIA_PLAY_PAUSE} 2000/XP Only: Play/pause media player
{LAUNCH_MAIL} 2000/XP Only: Launch the email application
{LAUNCH_MEDIA} 2000/XP Only: Launch media player
{LAUNCH_APP1} 2000/XP Only: Launch user app1
{LAUNCH_APP2} 2000/XP Only: Launch user app2
直接指定
Send Command Resulting Keypress
{ASC nnnnn} キーボードに無い文字を入力する。
nnnnnには文字コードを指定する。
1...255でASCIIコード、0128...0255でANSIコード、256...65535でUnicodeを指定可能。
原文にはUnicodeと書いてあったが、ShiftJISコードを指定したら日本語のコードを入力できた。

内部的には、Altを押しながらテンキーの数字を送信している。
{vkXX} or {vkXXscYYY} 仮想キーコードXX、スキャンコードYYYのキーを送信する。
XXとYYYは16進数。
YYYを省略した場合、仮想キーコードに設定されたデフォルトのスキャンコードになる。
AutoHotkeyウィンドウメニューの「View」→「Key history」でキーコードを表示可能。
マウスボタン
Send Command Resulting Keypress
{LButton}
{RButton}
{MButton}
{XButton1}
{XButton2}
{WheelDown}
{WheelUp}
各マウス操作を送信する。現在のカーソル位置での操作となる。
{Click[, options]} クリック操作を行う。
Optionsの書式などは、Clickコマンドと同じ。

Related

SetKeyDelay, SetStoreCapslockMode, ControlSend, WinActivate

Example(s)

Send, Sincerely,{enter}John Smith
Send, !fs ; Select the File->Save menu (Alt+F followed by S).