Function Reference

Send

シミュレーションしたキーストロークをアクティブなウィンドウに送信します。

Send ( "keys" [, flag] )

 

パラメータ

keys 送信するキー列
flag [オプション] どのように"キー"を送信するかを変更します。
  flag = 0 (デフォルト): SHIFTやALTキーが押されていることを意味する+や!のような特殊な文字をテキストが含んでる場合。
  flag = 1:キーはそのまま送信されます。

 

返し値

なし。

 

注意

Sendに関するTIPSについてはAppendixを参照。AutoItでは全てのASCIIとExtended ASCII 文字(0-255)を送信することができます。UNICODE 文字を送信するには”ASC”オプションと送信したい文字コード を使用しなければなりません(下表の下の {ASC} を参照)。

”send”コマンドの文法はScriptItやVisualBasicの”SendKeys”コマンドと同じです。次に示す文字を除いて、文字は書かれたとおりに送信されます。

'!'
AutoItがALTキーを送信するよう指定します。従ってSend("This is text!a") は"This is text"と送信した後"ALT+a"を押します。

注意:プログラムによってはALTキー+大文字で意味が変わることがあります。例えば"!A"と"!a"で意味が異なる場合があります。最初のものはALT+SHIFT+Aで2番目のものはALT+aという具合です。迷った場合は小文字を使いましょう!

'+'
AutoItがSHIFTキーを送信するよう指定します。従ってSend("Hell+o")は"HellO"と送信し、Send("!+a")は"ALT+SHIFT+a"と送信します。

'^'
AutoItがCONTROLキーを送信するよう指定します。従ってSend("^!a")は"CTRL+ALT+a"と送信します。

注意:プログラムによってはCTRLキー+大文字で意味が変わることがあります。例えば"^A"と"^a"で意味が異なる場合があります。最初のものはCTRL+SHIFT+Aで2番目のものはCTRL+aという具合です。迷った場合は小文字を使いましょう!

'#'
ハッシュはWindowsキーを送信します。従ってSend("#r")はWin+rと送信して”ファイル名を指定して実行”のダイアログボックスを立ち上げます。

SendCapslockModeを設定することでSend操作の前にCAPS LOCKをはずし、Send操作終了後に元に戻すことができます。
しかし、もしユーザーがSend関数が実行されている際にShiftキーを押していた場合、テキストは大文字として送信されてしまいます。
回避策のひとつは他のSendの前にSend("{SHIFTDOWN}{SHIFTUP}")と記述することです。

チェコ語キーボードなどではシフトキーが押されていたりやCAPS LOCKが有効になってる場合異なった文字が送信されてしまいます。SendのAutoItにおける仕様ではCAPS LOCK時の文字はShiftキーを押したものとして送信されるのでこの場合正常動作しません

中括弧で囲むことで特殊なキーを送信することができます。

注意:ウィンドウズでは"CTRL-ALT-DEL"のキーの組み合わせはシミュレーションできません!
送信コマンド (flag=0の場合) キー操作結果
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} SPACE
{ENTER} メインキーボードのENTER キー
{ALT} ALT
{BACKSPACE} or {BS} BACKSPACE
{DELETE} or {DEL} DELETE
{UP}
{DOWN}
{LEFT}
{RIGHT}
{HOME} HOME
{END} END
{ESCAPE} or {ESC} ESCAPE
{INSERT} or {INS} INS
{PGUP} PageUp
{PGDN} PageDown
{F1} - {F12} Function キー
{TAB} TAB
{PRINTSCREEN} Print Screen キー
{LWIN} Left Windows キー
{RWIN} Right Windows キー
{NUMLOCK on} NUMLOCK (オン/オフ/切り替え)
{CAPSLOCK off} CAPSLOCK (オン/オフ/切り替え)
{SCROLLLOCK toggle} SCROLLLOCK (オン/オフ/切り替え)
{BREAK} Ctrl+Break処理
{PAUSE} PAUSE
{NUMPAD0} - {NUMPAD9} テンキー 数字
{NUMPADMULT} テンキー *
{NUMPADADD} テンキー +
{NUMPADSUB} テンキー −
{NUMPADDIV} テンキー /
{NUMPADDOT} テンキー ピリオド
{NUMPADENTER} テンキーのEnter キー
{APPSKEY} Windows App キー
{LALT} 左 ALT キー
{RALT} 右 ALT キー
{LCTRL} 左 CTRL キー
{RCTRL} 右 CTRL キー
{LSHIFT} 左 Shift キー
{RSHIFT} 右 Shift キー
{SLEEP} Computer SLEEP キー
{ALTDOWN} {ALTUP}が送信されるまでALTキーを押し続けます。
{SHIFTDOWN} {SHIFT}が送信されるまでSHIFTキーを押し続けます。
{CTRLDOWN} {CTRL}が送信されるまでCTRLキーを押し続けます。
{LWINDOWN} {LWINUP}が送信されるまで左Windowsキーを押し続けます。
{RWINDOWN} {RWINUP}が送信されるまで右Windowsキーを押し続けます。
{ASC nnnn} ALT+nnnn のキーの組み合わせを送信します。
{BROWSER_BACK} 2000/XP のみ: ブラウザの"戻る"ボタンを選択します。
{BROWSER_FORWARD} 2000/XP のみ: ブラウザの"進む"ボタンを選択します。
{BROWSER_REFRESH} 2000/XP のみ: ブラウザの"更新"ボタンを選択します。
{BROWSER_STOP} 2000/XP のみ: ブラウザの"中止"ボタンを選択します。
{BROWSER_SEARCH} 2000/XP のみ: ブラウザの"検索"ボタンを選択します。
{BROWSER_FAVORITES} 2000/XP のみ: ブラウザの"お気に入り"ボタンを選択します。
{BROWSER_HOME} 2000/XP のみ: ブラウザを起動しホームページに移動します。
{VOLUME_MUTE} 2000/XP のみ: 音声を消します。
{VOLUME_DOWN} 2000/XP のみ: 音声ボリュームを下げます。
{VOLUME_UP} 2000/XP のみ: 音声ボリュームを上げます。
{MEDIA_NEXT} 2000/XP のみ: メディアプレイヤーの次のトラックを選択します。
{MEDIA_PREV} 2000/XP のみ: メディアプレイヤーの前のトラックを選択します。
{MEDIA_STOP} 2000/XP のみ: メディアプレイヤーを停止します。
{MEDIA_PLAY_PAUSE} 2000/XP のみ: メディアプレイヤーの再生/一時停止をおこないます。
{LAUNCH_MAIL} 2000/XP のみ: eメールアプリケーションを起動します。
{LAUNCH_MEDIA} 2000/XP のみ: メディアプレイヤーを起動します。
{LAUNCH_APP1} 2000/XP のみ: ユーザー設定のアプリケーション1を起動します。
{LAUNCH_APP2} 2000/XP のみ: ユーザー設定のアプリケーション2を起動します。

ASCIIコードでAを送信(テンキーでALT+065)するためには次のようにします。
    Send("{ASC 065}")

(2桁のASCIIコードを使用する場合、頭に0をつける必要があります。0をつけなかった場合 obsolete 437 code page が使用されます。)

文字コード(10進数または16進数)でUNICODEを使って送信したい場合、例えば次のようにして漢字を送信します。
    Send("{ASC 2709}") または Send("{ASC 0xA95}")

次のようにして同じキーを繰り返し送信することができます。
    Send("{DEL 4}") ;DELキーを4回押す
    Send("{S 30}") ;30個の文字'S'を送信する
    Send("+{TAB 4}") ;SHIFT+TABを4回押す

送信回数に0を指定してもキーは必ず1回は送信されます。

キーを押し続ける場合(一般にはゲームでしか利用されません)
    Send("{a down}") ;A キーを押し続けます
    Send("{a up}") ;A キーを離します

capslock、numlock、scrolllockキーの状態を設定します。
    Send("{NumLock on}") ;NumLockキーをオンにします。
    Send("{CapsLock off}") ;CapsLockキーをオフにします。
    Send("{ScrollLock toggle}") ;ScrollLockの状態を切り替えます。

変数を回数に使いたい場合、次のようにしてください。
    $n = 4
    Send("+{TAB " & $n & "}")

ASCIIコードでAを4回送信したい場合、次のようにしてください。
    $x = Chr(65)
    Send("{" & $x & " 4}")

ラップトップコンピュータのほとんどはspecialFnキーを持っています。このキーはシミュレートできません。

注意:flagパラメータを1に設定することで 上記の"特別"な処理を無効にすることができます。これは変数を使って文を送信をする場合、また完全に入力した通りの文を送信する場合に使われます。

例として(コントロールパネルの)フォルダオプションを開いて次の操作を試してみてください。
Send("{TAB}") 次のコントロール(button、checkboxなど)に移動します。
Send("+{TAB}") 前のコントロールに移動します。
Send("^{TAB}") (タブのあるウィンドウの場合)次のウィンドウタブに移動します。
Send("^+{TAB}") 前のウィンドウタブに移動します。
Send("{SPACE}") チェックボックスのチェックの切り替え、ボタンのクリックに使えます。
Send("{+}") ("本当"のチェックボックスであれば)チェックボックスをチェックします。
Send("{-}") チェックボックスのチェックをはずします。
Send("{NumPadMult}") SysTreeView32 内のフォルダを開きます。

Altキーとの組み合わせを使えばメニューアイテムにアクセスできます。メモ帳を起動して次の操作を試してみてください。
Send("!f") はメモ帳のファイルメニューにへのアクセスキーである Alt+f を送信します。他の文字も試してみてください!

Send("{DOWN}") メニュー上を下に移動します。
Send("{UP}") メニュー上を上に移動します。
Send("{LEFT}") 左方向に移動して次のメニューを開きます。またはサブメニューを閉じます。
Send("{RIGHT}") 右方向に移動して次のメニューを開きます。またはサブメニューを開きます。
Alt+F4、PrintScreen、Ctrl+Cなどの意味について知らない場合は、ウィンドウズヘルプ(Win+F1で起動)のキーボードショートカットのリストを参照。

psexec (www.sysinternals.com)やbeyondexec (www.beyondlogic.org)のようなプログラムを通してスクリプトを遠隔のコンピュータで走らせる場合、 特にRun関数で起動させたプログラムにキーストロークを送信する場合には コントロールを直接的に操作するためにControlSendやその他のControlXXX関数を使用することが必要です。 SendはOpt("SendAttachMode",1)を設定していたとしても動作しません。
サブミット時の-sモードの使用は遠隔のコンピュータ上での正しい権限取得の助けになります。

Opt("SendKeyDelay",...) はキーストロークのキーの間の時間間隔を変更します。
Opt("SendKeyDownDelay",...) はキーストロークのキーが押されてから離されるまでの時間の長さを変更します。
キーストローク送信の遅延を完全に無くすには"SendKeyDelay"と"SendKeyDownDelay"の両方を0に設定してください。 これは特定の状況で必要になります。例えばシステムをロックする("#l")場合、WINキーが押したままになるのを防ぐために 遅延をなくす必要があります。

 

関連

SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay (Option), ControlSend, BlockInput, HotKeySet, WinMenuSelectItem

 


Send("#r")
WinWaitActive("Run")
Send("notepad.exe{Enter}")
WinWaitActive("[CLASS:Notepad]")
Send("Today's time/date is {F5}")