分類 | 分類/ソフト制御/OS/プロセス(nakoctrl.dll)/キー操作 |
種類 | 命令 |
引数 | {=?}AにSを|Aへ |
説明 | タイトルAを持つウィンドウに文字Sをキー送信する。Aを省略するとアクティブなウィンドウへ送信。(VB互換) |
識別 | id:4200 |
任意のキーを送信します。以下はメモ帳を起動し文字を書き入れるサンプルです。
『キー送信』命令を使う場合は、『n秒待つ』でちょっとずつキーを送信した方が失敗が少なくなります。
「notepad.exe」を起動。 1秒待つ 「abc」をキー送信 0.5秒待つ 「ABC」をキー送信 0.5秒待つ
[Ctrl] + [V] などのショートカットキーを送信する場合には、次のように「^v」のような組みわせ記号を使います。以下は、クリップボードにある文字列をメモ帳に貼り付けする例です。
クリップボード=「なでしこ最高!」※クリップボードの書き換え 「notepad.exe」を起動。 ※メモ帳を起動 1秒待つ。 ※一服 『^v』をキー送信。 ※[Ctrl]+[V]を送信 1秒待つ。 ※一服 『%{F4}』をキー送信。 ※[Alt]+[F4]を送信 1秒待つ。 ※一服 『n』をキー送信。 ※ n を送信 終わる。
また任意のウィンドウに連続してキーを送信する場合は、「窓ハンドルキー送信」を使います。
上記で見たように、abc や 数字のキーを送る場合には、普通に送信するキーを記述します。しかし、特殊なキーを送る場合には、次のような特殊な記号を組み合わせてキー送信を指示します。
キーの組み合わせ:
キー | 指定する記号 |
Shift | + |
Ctrl | ^ |
Alt | % |
Windows | & |
特殊キー:
BackSpace | {BACKSPACE},{BS}または{BKSP} |
Tab | {TAB} |
Ctrl+Break | {BREAK} |
Enter | {ENTER} または ~ または {RETURN} |
Home,End | {HOME},{END} |
Esc,Help | {ESC},{HELP} |
Ins | {INSERT} |
Del | {DELETE}または{DEL} |
↑,↓,←,↑ | {UP},{DOWN},{LEFT},{RIGHT} |
PrintScreen | {PRTSC} |
PageDown | {PGDN} |
PageUp | {PGUP} |
CapsLock | {CAPSLOCK} |
NumLock | {NUMLOCK} |
ScrollLock | {SCROLLLOCK} |
F1~F16 | {F1}...{F16} |
ALT+全角/半角 | {IME} |
Windowsキー | {WIN} (※組み合わせて使う時は & ) |
CTRLキー | {CTRL} (※組み合わせて使う時は ^ ) |
右CTRLキー | {RCTRL} |
ALTキー | {ALT} (※組み合わせて使う時は % ) |
右ALTキー | {RALT} |
SHIFTキー | {SHIFT} |
右SHIFTキー | {RSHIFT} |
PAUSEキー | {PAUSE} |
こうした特殊キーを送るときに不便なのが、なでしこの文字列内の変数展開の機能です。「{F1}」などと書くと、変数「F1」の内容が展開されてしまいます。そのため、展開を行わない文字列の指定二重カギカッコで『F1』のように記述する必要があります。
キーを送信するウィンドウのタイトルの指定には、ワイルドカードが利用できます。メモ帳などのタイトルは「無題 - メモ帳」となっていますが、編集するファイル名によって無題の部分が変わります。そんなとき、ワイルドカードを使います。以下のサンプルでは、ワイルドカードを指定して、メモ帳にキーを送信します。
「notepad.exe」を起動。1秒待つ。 「*メモ帳」へ「abcd」をキー送信。
とりあえず、興味のある方は、以下のなでしこのソースコードをご覧ください。時間を見て、マニュアルをアップデートします。