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内にあるので,参照の追加をしておく.(やり方わからない人はこことか参照)
メモ帳を起動した状態でボタンをクリックすると,メモ帳がアクティブになり
キー入力 テスト
といった感じでキー入力されるはず.