PowerShellでキーボード操作を行う方法
はじめに
PowerShellでキーボード操作を行う方法のメモです。
PowerShellでキーボード操作を行う
System.Windows.Forms名前空間のSendKeysを利用することでキーボード操作を行う事ができます。
以下、スクリプト実行の5秒後に「こんにちは」と入力するスクリプトです。
# System.Windows.Forms名前空間の読み込み
Add-Type -AssemblyName System.Windows.Forms
# 5秒スリープ
Start-Sleep 5
# キー操作で「こんにちは」と入力する
[Windows.Forms.SendKeys]::SendWait("こんにちは")
スクリプト実行後にメモ帳にフォーカスを当てると、メモ帳に「こんにちは」と入力されます。

特殊キーの入力
キー操作は通常の文字だけでなく特殊キー(Enterなど)も操作できます。
Enterを入力する場合は「SendWait("{Enter}")」とします。
# System.Windows.Forms名前空間の読み込み
Add-Type -AssemblyName System.Windows.Forms
# 5秒スリープ
Start-Sleep 5
[Windows.Forms.SendKeys]::SendWait("こんにちは")
[Windows.Forms.SendKeys]::SendWait("{Enter}")
[Windows.Forms.SendKeys]::SendWait("こんばんは")
スクリプト実行後にメモ帳にフォーカスを当てると、以下のようになります。

特殊キーのコード一覧
特殊キーのコードは以下のとおりです。
| キー | コード |
|---|---|
| BACKSPACE | {BACKSPACE} or {BS} or {BKSP} |
| BREAK | {BREAK} |
| CAPS LOCK | {CAPSLOCK} |
| DELETE | {DELETE} or {DEL} |
| END | {END} |
| ENTER | {ENTER} |
| ESC | {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INSERT | {INSERT} or {INS} |
| NUM LOCK | {NUMLOCK} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| UP ARROW | {UP} |
| DOWN ARROW | {DOWN} |
| RIGHT ARROW | {RIGHT} |
| LEFT ARROW | {LEFT} |
| PAGE UP | {PGUP} |
| PAGE DOWN | {PGDN} |
| F1 ~ F16 | {F1} ~ {F16} |
キーの組み合わせ
SHIFTキー、CTRLキー、ALTキーと組み合わせたキーを指定するには、文字の前に以下のコードを記載します。
| キー | コード |
|---|---|
| SHIFT | + |
| CTRL | ^ |
| ALT | % |
「Ctrl + s」を入力する場合は以下のように記載します。
[Windows.Forms.SendKeys]::SendWait("^s")