現状
現在、在庫更新の作業を自動するプログラムを作っています。
その作業の中で「accessのフォームにあるボタンを押す」作業があります。
ボタン画像を認識して、クリックするだけですが画像を認識してくれません。
googleでautoitの画像認識を探すと
こちらのツールを紹介したサイトばかりです。
ImageSearch Usage Explanation
こちらのツールを入れるとこの関数が動きますが
_ImageSearch('checkImage.bmp', 0, $x, $y, 0)
設定したbmpが悪いのかうまく認識してくれません。
別のUDF
世界中のautoitユーザーでも同じように動かない人が多いはずなので
「autoit imagesearch doesnt work」とgoogleで探すと、新しい画像認識があるみたいです。
(まだ3000DLしかされてないので紹介します。)
こちらの中にある
_ImageSearch_Sample.au3で起動させると
「どの画像を認識しますか」と出てくるので画像部分を選択すると、自動でbmpが作られ
下記の設定をもとに動作してくれます。
Global Const $Ask_On_Found = 0 #画像の座標を出す
Global Const $Mouse_Move_On_Found = 1 #画像にカーソルを合わせる
Global Const $Mouse_Click_On_Found = 0 #画像をクリック
↑のプログラムで生成したbmpを使って
オリジナル関数を_my_image_search_click(path)を作ってみました。
とにかく指定した画像を押せ関数です。
# include "_ImageSearch_UDF.au3"
# RequireAdmin
Global Const $Mouse_Click_On_Found = 1
Global Const $iSleep_Time=500
Global $sCount = 0
func _my_image_search_click($_Image_1)
While 1
Sleep($iSleep_Time)
$sCount += 1
Local $return = _ImageSearch($_Image_1)
If $return[0] = 1 Then
If $Mouse_Click_On_Found Then MouseClick("left", $return[1], $return[2])
Exit 0
EndIf
Sleep(200)
WEnd
EndFunc
都合がよいときに呼び出します。
# include "_my_image_search_click.au3"
_my_image_search_click("C:\Users\mypc\Desktop\access.bmp")
もともとsampleのプログラムで認識ができているので
書き換えたプログラムもうまく起動しました。
めでたし めでたし。