autoit 自動クリック ツールをサクッと作る

autoit 自動クリック ツール をサクッと作る AutoIT

それなりに需要がありそう(あったで今はそんなにない!?)な、自動クリックツールをAutoItでサクっと作ってみます。
「自動クリック」でググって出てきた、おーとくりっか~のようなことをしてみます。GUIは今回はなしで。

スポンサーリンク

1. Au3Record.exeでマウス操作を記録

今のAutoItには入っていないので、archiveから旧バージョンをダウンロードし、展開。
ダウンロードするのは、autoit-v3.3.14.0.zipです。

Index of /autoit3/files/archive/autoit

展開したら、install\Extras\にAu3Recordフォルダがあるので、そのフォルダをC:\Program Files (x86)\AutoIt3\Extras\内にコピーしましょう。

1.1 Au3Recordを立ち上げてマウス操作(座標)を記録

Recorderを立ち上げて左側にあるClick To Recordのボタンをクリックすると記録開始されます。マウス操作だけでなくキーボード操作もOKです。今回はクリックだけしてみます。

録画モードになったら、画面のどこでもいいのでいくつかクリックしましょう。
今回はこの他にもWin+R、notepadでメモ帳立ち上げて「こんにちは」と打って改行改行、マウスドラッグしてみたり。最後にクリック3回。

Au3Record.exeで記録した

で、停止すると、テキストエリアにMouseClicl(“left”, 1233,821,1)とか表示されます。

Function MouseClick

2. スクリプトを書く

クリック関数を作って順番に呼ぶだけです。スリープ入れる為に関数にしました。
Au3Record.exeで記録した最後の3行をコピペしてMouseClick ->自作関数_clickfuncに。
クリックしたらスリープ入れるようなので、関数内でクリック後Sleepしています。

#AutoIt3Wrapper_UseX64=y
Global $g_sleep = 1000 ;クリック後スリープ

_clickfunc("left",1272,124,1)
_clickfunc("left",915,205,1)
_clickfunc("left",478,245,1)

Func _clickfunc($btn="left",$x=0,$y=0,$speed=10)
  MouseClick($btn,$x,$y,$speed)
  Sleep($g_sleep)
EndFunc
autoit/autoclick.au3 at master · cfautog/autoit
sample code. Contribute to cfautog/autoit development by creating an account on GitHub.

3. 実行すると、マウスが移動してクリックする

SciTEで先ほどのスクリプトファイルを開いて実行すると、マウスが移動->クリック->1秒(1,000ミリ秒)待つ、->マウス移動・・・という風に目でも確認できます。

サクッと作るならAu3Record.exeは楽ですね。
記録したスクリプトをSaveでそのままau3ファイルにしてもいいし、今回のように別途スクリプト作る上での参考としても良しです。

勿論コマンドラインからも実行できるので、定期実行するとかも出来そうです。

4. マウス座標をランダムに

よくある話で、同じ座標をクリックしているとサービスによってはBANされる・・ということも。
というわけで、Random()関数で座標をランダムにしましょう。

Function Random

Random(最小値,最大値,1) <- 1はint型にする

例えば、指定した座標から X座標は-2~2、Y座標は-5~5ずらすだと

Local $x1 = Random(-2,2,1)
Local $y1 = Random(-5,5,1)
;; $randx=2 変数を用意して、Random($randx*(-1),$randx,1)としたほうがいいかも

出てきた$x1,$y1をMouseClick(“left”,$x+$x1,$y+$y1,1)とすればOK。
もしも、元の座標が左上なら、Random(0,2,1)と第一引数の最小値を0にすればOK

コメント

タイトルとURLをコピーしました