概要
sendkeyでGUIアプリケーションを自動操作
詳細
WSHを利用してWindows環境のアプリケーションにキーを送信して自動操作します。
実際にこのような操作が必要となるケース
・GUIを操作するAPIが提供されていない場合の自動化
┠テスト
┗紙芝居キャプチャ
思いつく範囲では上記のような内容。
ただし、キーを送信しているだけなのでプログラムの実行中に
割込が入ったり手動でフォーカスを別のところに移したりしてしまうと
移動した先でキーを送信してしまうためご作動のもととなる。
PCを操作していない時にコマンドだけ実行して離席したり、空きPCを
利用したり、など利用に際して注意が必要。
サンプル
前提
Rubyからwin32oleを利用して実装します。
仕様
Notepadを開く=>hogeと入力=>higeと入力=>hageと入力=>アプリケーションを終了する
ソースコード
※VBScript, JavaScriptなどでも記述できます
require 'win32ole' def send_keys_with_sleep(wsh, key) wsh.SendKeys key sleep 1 end wsh = WIN32OLE.new("WScript.Shell") wsh.run "notepad" sleep 3 ["hoge\n", "hige\n", "hage\n", "%(f)", "X", "%(N)"].each {|w|send_keys_with_sleep wsh, "#{w}"}