2010年3月13日土曜日

自動クリック

【種類】
AutoIt(Ver.3)スクリプト

【機能】
指定したウインドウが表示されたら、特定のボタンを自動的にクリックします。

【準備】
AutoItでexe化します。

【使い方】
起動すると常駐して監視します。
指定のウインドウが表示されたら指定のボタンが自動的にクリックされます。
終了する場合はタスクトレイのアイコン右クリックして「Exit」を選んで下さい。

【設定】
iniファイルを直接編集して設定します。

1.[configuration]セクション

interval_sec=1 ... 監視間隔を秒で指定

2.[window0] ~ [window9]

ウィンドウの指定

title ... 監視するウインドウタイトルの一部を指定します。(部分マッチング)
未指定の場合はそのセクションが無視されます。

text ... 監視するウインドウに表示されている内容の一部を指定します。(部分マッチング)
未指定でも動作します。(タイトル

control ... クリックするボタン(コントロール)を指定します。
未指定の場合はウインドウにクローズメッセージを投げます。

3.controlの指定方法

例) [TEXT:OK] ... OKというテキストが記入されているコントロールをクリックします。
他にID,Classなどでも指定できますが、詳しくはAutoitのヘルプファイルのControlsを参照して下さい。



AutoClick.au3

; initialize
AutoItSetOption("TrayAutoPause", 0)
Dim $title[10], $atext[10],$control[10]

; ini file
$inifilename=@ScriptDir&"\AutoClick.ini"

; Interval String
$value = IniRead($inifilename, "configuration", "interval_sec", "1")
If @error Then
MsgBox(4096, "", "Error occurred, probably no INI file.")
exit
EndIf
$interval_sec = number($value)

; Window Settings
$sectionNames = IniReadSectionNames($inifilename)
If @error Then
MsgBox(4096, "", "Error occurred, probably no INI file.")
exit
EndIf

For $i = 0 To 9
$title[$i] = IniRead($inifilename, "window"&$i, "title", "")
$atext[$i] = IniRead($inifilename, "window"&$i, "text", "")
$control[$i] = IniRead($inifilename, "window"&$i, "control", "")
;MsgBox(4096, "", $title[$i] & " : " & $atext[$i])
Next

; main roop
while (1)
For $i = 0 to 9
if $title[$i] <> "" And WinExists($title[$i], $atext[$i]) Then
if $control[$i] <> "" Then
ControlClick($title[$i], $atext[$i], $control[$i])
Else
winClose($title[$i], $atext[$i])
EndIf
EndIf
Next
Sleep($interval_sec*1000)
WEnd



AutoClick.ini(例)


[configuration]
interval_sec=1

[window0]
title=hogehoge
text=Please Press OK Button
control=[TEXT:OK]

0 件のコメント:

コメントを投稿