ラベル AutoIt の投稿を表示しています。 すべての投稿を表示
ラベル AutoIt の投稿を表示しています。 すべての投稿を表示

2011年5月19日木曜日

autoitでキー操作を書くときのメモ

autoitでエンターキーとかを送るのをどうやって書くのかを
すぐに忘れてしまうので、リンクをメモしておきます。

send関数の使い方。

2009年12月14日月曜日

AutoItで文字列の分割

AutoItで文字列の分割をどうすればいいのかなといろいろ試していたら
こんな感じでやればできました。
ついでなのでループも使ってみる。

|で文字列を分解して、順番に表示するサンプルです。

=======================================================
$days = StringSplit("Sun|Mon|Tue|Wed|Thu|Fri|Sat", "|")
For $i = 1 to $days[0] Step 1
 MsgBox(0, "曜日", $days[$i])
Next
MsgBox(0, "情報","ループ終了")
=======================================================

AutoItで他のファイルを取り込む

AutoItで他の用途で書いた関数などを呼び出す場合(Javaでいうところのimport) にどうしたらいいのかなと調べてみたところ、includeというものがあるようですね。

http://www.autoitscript.com/autoit3/docs/keywords/include.htm 

 #include "inc1.AU3" 
 #include "inc2.AU3" 

 という感じで書いてみると、そのまま、 "inc1.AU3" "inc2.AU3" が順番に実行されるようです。 inc1.auで定義した変数をinc2.auで使ってみても、使えるようなので、 COBOLでいうcopy句に近い概念なのかもしれません。

2009年12月12日土曜日

AutoItでクリップボードの操作

AutoItでクリップボードの操作例です。

クリップボードの文字を取得し、ダイアログに表示するサンプルです。

===============================================
$msg_text = ClipGet()
MsgBox(4096,"クリップボードテキスト",$msg_text)
===============================================
ドキュメントのリンクはこちら。
http://www.autoitscript.com/autoit3/docs/functions/ClipGet.htm

逆にクリップボードに渡したい場合には、ClipPut()を利用する。

http://www.autoitscript.com/autoit3/docs/functions/ClipPut.htm

これも上記のドキュメントを見れば簡単にできる。

AutoItでTreeViewを操作する

AutoItで外部からTreeViewを操作するサンプルを作ってみました。

エクスプローラでデスクトップを選択している状態のものを
ゴミ箱を選択している状態に変更するサンプル
===========================================
ControlTreeView("デスクトップ","","[CLASS:SysTreeView32;INSTANCE:1]","Expand","デスクトップ")
ControlTreeView("デスクトップ","","[CLASS:SysTreeView32;INSTANCE:1]","Exists","デスクトップ|ごみ箱")
ControlTreeView("デスクトップ","","[CLASS:SysTreeView32;INSTANCE:1]","Check","デスクトップ|ごみ箱")
ControlTreeView("デスクトップ","","[CLASS:SysTreeView32;INSTANCE:1]","Select","デスクトップ|ごみ箱")
ControlTreeView("デスクトップ","","[CLASS:SysTreeView32;INSTANCE:1]","Expand","デスクトップ|ごみ箱")

===========================================
ちなみに「デスクトップ|ごみ箱」の|はフォルダの区切れ目を意味しているようです。

AutoItでコンポーネントをクリックする命令を送る。

AutoItでコンポーネントをクリックする命令を送る方法

仕様リンク:
http://www.autoitscript.com/autoit3/docs/functions/ControlClick.htm


AutitV3 WindowInfoのControlのAdvanced(class)


を調べて

ControlClick("画面のタイトル","","上で調べた文字列")
 
もしくは、ボタンの文字列とクラスを下記のように指定してあげてもできるみたい。
 
ControlClick("画面のタイトル","","[CLASS:TButton;TEXT:保存]", )
 
第3引数の使用に関しては、下記が参考になる。
http://www.autoitscript.com/autoit3/docs/intro/controls.htm
 
 

AutoItでコマンドライン引数を受ける

AutoItで引数を受け取る方法はこんな感じでできるようです。

$CmdLine[0] コマンドラインの引数の数


$CmdLine[1~] 引数の値

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を操作することが可能になります。