こんにちは、生焼けです。
今回はAutoHotKeyで欠かせないマウスの操作について解説します。
例文では「キー指定」の部分や「return」を省略しているので注意してください。
マウスのクリックやホイールの操作をする
AutoHoyKeyではマウスのクリックやホイールの操作、カーソルの移動をするコマンドがいくつか用意されています。
今回は左クリックや右クリック、マウスホイールを操作するコマンドを紹介します。
単語の意味と書き方

AutoHotkeyは基本的に、
コマンド名,引数A,引数B,…
のように書いていきます。
コマンドは「send」などのような【何をしたいか】を指定するものです。
引数は、コマンドのオプションや設定の値のように考えてください。
sendコマンドを使う

send,{ボタン名}を利用して、マウスのクリックやホイールの操作を発生させます。
sendコマンドでは現在のカーソルの位置でクリックやホイールを操作をするだけなので、他のコマンドと組み合わせて使うことが多いです。
書き方
send,{ボタン名}
それぞれのクリックするボタン
左クリック
send,{LButton}
右クリック
send,{RButton}
ホイールを下に回す
send,{WheelDown}
ホイールを上に回す
send,{WheelUp}
MouseClickコマンドを使う

MouseClickコマンドを使用してマウスの操作をします。
sendコマンドとは違い、クリックする位置や回数などが設定出来るので、マウスの移動から操作をしたい時はこちらのMouseClickコマンドを使用します。
書き方
MouseClick,ボタン名,クリックする座標X,クリックする座標Y,クリック回数
,座標までの移動スピード,押し下げたまま/離す,座標をカーソルからの相対位置にする
引数(「MouseClick, 」以降の部分)のボタン名以外は省略可能です。
それぞれの引数について解説していきます。
ボタン名
MouseClick,ボタン名
クリックしたいマウスのボタンを指定します。次で解説するクリックする座標を省略すると、現在のカーソルの位置でのクリックや操作になります。
左クリック
MouseClick,LEFT
右クリック
MouseClick,RIGHT
ホイールを上に回す
MouseClick,WheelUp
ホイールを下に回す
MouseClick,WheelDown
クリックする座標X/Y
MouseClick,LEFT,クリックする座標X,クリックする座標Y
この部分ではクリックする位置を座標(X,Y)で指定することができます。省略した場合は現在のカーソルの位置でクリックが発生します。
座標について
座標はアクティブなウィンドウの左上を基準(0,0)にした位置が指定されます。
数値は右と下に行くほど増えていきます。

ウィンドウを小さくしていた場合も、左上を基準にクリックされるのでその点だけ注意が必要です。
座標の調べ方
ウィンドウ上の座標はAutoHotkeyの付属ソフト「WindowSpy」で調べることが出来ます。

「WindowSpy」はAutoHotkeyの緑色のHのアイコンを右クリックして出てくる中にあります。

ウィンドウ上の(300,300)の位置で左クリックする
MouseClick,LEFT,300,300
ウィンドウ上の(500,900)の位置で右クリックする
MouseClick,RIGHT,500,900
後述する「座標をカーソルからの相対位置にする」の部分を設定すると、現在のカーソルの位置を基準とした座標を指定することもできます。
クリック回数
MouseClick,LEFT,300,400,クリック回数
この部分ではクリックの回数を指定することができます。省略した場合は1回になります。
つまり、ダブルクリックをしたい場合はここを2と指定すればOKです。
現在のカーソルの位置でダブルクリック(クリックを2回)する
MouseClick,LEFT,,,2
ウィンドウ上の(500,900)の位置で右クリックを3回する
MouseClick,RIGHT,500,900,3
座標までの移動スピード
MouseClick,LEFT,300,400,1,座標までの移動スピード
この部分では、指定した座標までカーソルが移動する速度を0-100の間で指定することができます。省略した場合は2になっています。
0にすると即座に移動し、100にするとゆっくりとカーソルが移動します。
基本的に触ることはないですが、デフォルトの2では処理が追いつかない時や不具合がある時に設定します。
(300,400)までゆっくりとカーソルを移動させて左クリック
MouseClick,LEFT,300,400,,100
(300,400)まで即座にカーソルを移動させて左クリック
MouseClick,LEFT,300,400,,0
押し下げたまま/離す
MouseClick,LEFT,300,400,1,2,押し下げたまま/離す
この部分ではDかUを指定することで、クリックした後も押し下げたままにする(D)、その押し下げた状態を解除する(U)かを設定することが出来ます。省略した場合は普通のクリックになります。
簡単に言うと、ドラッグをさせる事ができる設定です。
Dを設定した場合、指定した位置でクリックをした後、その場からドラッグした状態になります。他の場所をクリックしたり、MouseClickコマンドでUを指定するなどをするとドラッグが解除されます。
(300,400)の位置で左クリックし、そのままドラッグを保つ(ずっと押しっぱになる)
MouseClick,LEFT,300,400,,,D
現在のカーソルの位置でドラッグし始め、(300,400)の位置で離す
MouseClick,LEFT,,,,,D
MouseClick,LEFT,300,400,,,U
MouseClickDragコマンドで代用可能
MouseClickDrag,ボタン名,ドラッグ開始X,ドラッグ開始Y,ドラッグ終了X,ドラッグ終了Y
同じようにドラッグをするコマンドでMouseClickDragコマンドがあります。
MouseClick,LEFT,,,,,D
MouseClick,LEFT,300,400,,,U
;↓↑同じ動き
MouseClickDrag,ボタン名,,,300,400
MouseClickDragコマンドは一文で済みますが、MouseClickコマンドとは違いドラッグしている間には他の操作をさせることが出来ないので、用途によって使い分けます。
MouseClick,LEFT,,,,,D
sleep,800
MouseClick,LEFT,300,400,,,U
;クリックしてから、ドラッグを開始するまでに800m秒停止する
MouseClickコマンドでは上のようにドラッグしている間にスリープを入れることが出来ます。
座標をカーソルからの相対位置にする
MouseClick,LEFT,10,10,1,2,,座標をカーソルからの相対位置にする
この部分を「R」と設定すると、クリックする位置が現在のカーソルの位置を基準とした位置になります。省略した場合は現在のウィンドウの左上を基準とした位置になります。
例えば、
MouseClick,LEFT,10,10,,,,R
とすると、現在のカーソルの位置から右に10、下に10の所へ移動します。

Clickコマンドを使う

書き方
Click,ボタン名,クリックする座標X,クリックする座標Y,クリック回数
,押し下げたまま/離す,座標をカーソルからの相対位置にする
前章のMouseClickコマンドと似たようなものに、Clickコマンドがあります。
引数についてはほとんどMouseClickコマンドと一緒なので解説は割愛します。
MouseClickコマンドとの違い
- 「座標までの移動スピード」を設定できない
- sendコマンドでキーとして利用出来る
「座標までの移動スピード」を設定できない
MouseClickコマンドとは違い、「座標までの移動スピード」を設定することが出来ません。
カーソルの移動スピードが早すぎて処理が追いつかない時や不具合がある時などはMouseClickコマンドを使用するしかありません。
sendコマンドでキーとして利用出来る
sendコマンド内で特殊キーのように指定することができます。
send,{Click,LEFT,300,400}
これの何が便利かと言うと、修飾キーと一緒に使用することができるという点です。
いつも特殊キーと修飾キーを組み合わせて使うときのように
send,+{Click,LEFT,300,400}
と書くことで、Shiftを押しながら(300,400)の位置を左クリックするという動作をさせる事ができます。
まとめ
AutoHotkeyでマウスをクリックする方法についてまとめました。
マウスを移動してからクリックなどをするにはMouseClickコマンドを使用し、ただ単にその場でクリックや右クリックするだけ、ホイールを動かす時はsendコマンドを使用するのが簡単です。
次回は、マウスの移動やその他の操作についてまとめます。
参考リンク