2009年3月31日火曜日

AutoItで操作記録のやり方

AutoItとは、何かというと、人の入力なしにどんどんアプリケーションを
進めていくための仕組みといったところでしょうか。
といっても、かなり高度で、ほとんど開発言語と言ってもいいように思う。

今回は、AutoItで画面操作を記録する方法について書いて見ます。

AutoItのダウンロード:
http://www.autoitscript.com/autoit3/downloads.shtml

SciTE4AutoIt3 のダウンロードにてツール郡もダウンロード
http://www.autoitscript.com/autoit3/scite/downloads.shtml


適当に拡張子がau3のファイルを作成する。
右クリックメニューーで「Edit Script」を選択

上部メニューより「Tool→Au3Recorder」を選択

するとこんな画面が出てくるので、ここでサンプルとしてnotepad.exeと入力
(ここには実行するexe名を記述する)

その後、右側にクリックせよと書いてあるとおりクリックしてみる。





あとは適当にnotepadを操作してみて右上の記録終了ボタンを押すと

るとautoItのスクリプトが生成されるので



===========================================================
#region --- ScriptWriter generated code Start ---
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
#endregion --- ScriptWriter generated code End ---


#region --- ScriptWriter generated code Start ---
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
Run('notepad.exe')
WinWait("無題 - メモ帳","")
If Not WinActive("無題 - メモ帳","") Then WinActivate("無題 - メモ帳","")
WinWaitActive("無題 - メモ帳","")
Send("aiueo{ENTER}")
MouseMove(51,47)
MouseDown("left")
MouseUp("left")
MouseMove(62,180)
MouseDown("left")
MouseUp("left")
WinWait("メモ帳","")
If Not WinActive("メモ帳","") Then WinActivate("メモ帳","")
WinWaitActive("メモ帳","")
Send("y")
WinWait("名前を付けて保存","")
If Not WinActive("名前を付けて保存","") Then WinActivate("名前を付けて保存","")
WinWaitActive("名前を付けて保存","")
Send("{DOWN}")
MouseMove(589,369)
MouseDown("left")
MouseUp("left")
WinWait("無題 - メモ帳","")
If Not WinActive("無題 - メモ帳","") Then WinActivate("無題 - メモ帳","")
WinWaitActive("無題 - メモ帳","")
MouseMove(1025,18)
MouseDown("left")
MouseUp("left")
WinWait("メモ帳","")
If Not WinActive("メモ帳","") Then WinActivate("メモ帳","")
WinWaitActive("メモ帳","")
MouseMove(162,104)
MouseDown("left")
MouseUp("left")
#endregion --- ScriptWriter generated code End ---
===========================================================


これを「F5」ボタンで実行してみると、同じ作業が繰り返されるのがわかると思います。

これで、自動実行の完成です。

これを眺めていると、AutoItの文法なんかもなんとなくわかると思います。

これで外部からexeを操作することが可能になります。

0 件のコメント: