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~] 引数の値