autoitでエンターキーとかを送るのをどうやって書くのかを
すぐに忘れてしまうので、リンクをメモしておきます。
send関数の使い方。
2011年5月19日木曜日
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でクリップボードの操作例です。
クリップボードの文字を取得し、ダイアログに表示するサンプルです。
http://www.autoitscript.com/autoit3/docs/functions/ClipGet.htm
逆にクリップボードに渡したい場合には、ClipPut()を利用する。
http://www.autoitscript.com/autoit3/docs/functions/ClipPut.htm
これも上記のドキュメントを見れば簡単にできる。
クリップボードの文字を取得し、ダイアログに表示するサンプルです。
=============================================== $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
仕様リンク:
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
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名を記述する)
その後、右側にクリックせよと書いてあるとおりクリックしてみる。

進めていくための仕組みといったところでしょうか。
といっても、かなり高度で、ほとんど開発言語と言ってもいいように思う。
今回は、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を操作することが可能になります。
登録:
投稿 (Atom)
-
AutoItとは、何かというと、人の入力なしにどんどんアプリケーションを 進めていくための仕組みといったところでしょうか。 といっても、かなり高度で、ほとんど開発言語と言ってもいいように思う。 今回は、AutoItで画面操作を記録する方法について書いて見ます。 AutoItのダウ...
-
AutoItでコンポーネントをクリックする命令を送る方法 仕様リンク: http://www.autoitscript.com/autoit3/docs/functions/ControlClick.htm AutitV3 WindowInfoのControlのAdv...
-
拡張子の変更を行いたいなと思ってちょこっと書いてみた サンプルプルプログラム 実際これだと、.の入ったファイル名の場合には、誤動作しそうですが、 書いてみるとこんな感じになるのだろうか。 Delphiだと、ChangeFileExtというダイレクトな関数があるのだけど、 Java...