C#でキーボード操作する(SendKeysクラスによる方法)

SendKeysクラス

キーボード入力をC#で自動化したい.SendKeysクラスのSendKeys.Sendメソッドを使う.

SendKeys.Sendメソッドは,アクティブなアプリケーションにキーストロークを送ることができる.

SendKeys.Send("test");

と書けば,"t","e","s","t"と順にキーが送られる.エンターキーやタブとかも{ENTER}や{TAB}といった感じで入力可能.そこらへんはMSDNのページにまとまってるのでそっちを参照.

確認

動作確認をするために,ボタンを押すとメモ帳にキー入力をするWindowフォームアプリケーションをを作った.

private void button1_Click(object sender, EventArgs e)
{
    Microsoft.VisualBasic.Interaction.AppActivate("メモ帳");
    SendKeys.Send("キー入力{ENTER}テスト");
}

メモ帳をアクティブにするためにInteraction.AppActivateメソッドを使った.AppActivateメソッドは,プロセスIDかタイトルで指定したアプリケーションをアクティブにする.Microsoft.VisualBasic.dll内にあるので,参照の追加をしておく.(やり方わからない人はこことか参照)

メモ帳を起動した状態でボタンをクリックすると,メモ帳がアクティブになり

キー入力
テスト

といった感じでキー入力されるはず.