それなりに需要がありそう(あったで今はそんなにない!?)な、自動クリックツールをAutoItでサクっと作ってみます。
「自動クリック」でググって出てきた、おーとくりっか~のようなことをしてみます。GUIは今回はなしで。
1. Au3Record.exeでマウス操作を記録
今のAutoItには入っていないので、archiveから旧バージョンをダウンロードし、展開。
ダウンロードするのは、autoit-v3.3.14.0.zipです。
展開したら、install\Extras\にAu3Recordフォルダがあるので、そのフォルダをC:\Program Files (x86)\AutoIt3\Extras\内にコピーしましょう。
1.1 Au3Recordを立ち上げてマウス操作(座標)を記録
Recorderを立ち上げて左側にあるClick To Recordのボタンをクリックすると記録開始されます。マウス操作だけでなくキーボード操作もOKです。今回はクリックだけしてみます。
録画モードになったら、画面のどこでもいいのでいくつかクリックしましょう。
今回はこの他にもWin+R、notepadでメモ帳立ち上げて「こんにちは」と打って改行改行、マウスドラッグしてみたり。最後にクリック3回。

で、停止すると、テキストエリアにMouseClicl(“left”, 1233,821,1)とか表示されます。
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
3. 実行すると、マウスが移動してクリックする
SciTEで先ほどのスクリプトファイルを開いて実行すると、マウスが移動->クリック->1秒(1,000ミリ秒)待つ、->マウス移動・・・という風に目でも確認できます。
サクッと作るならAu3Record.exeは楽ですね。
記録したスクリプトをSaveでそのままau3ファイルにしてもいいし、今回のように別途スクリプト作る上での参考としても良しです。
勿論コマンドラインからも実行できるので、定期実行するとかも出来そうです。
4. マウス座標をランダムに
よくある話で、同じ座標をクリックしているとサービスによってはBANされる・・ということも。
というわけで、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
コメント