オートホットキー(AutoHotkey)に何か本格的なマクロを作成するには、最も基本とすることができるのがまさに、マウスのクリックである。事実、コードが長くなって非効率的になってそうで、気になれば、マウスをクリックするだけで、ほとんどのマクロを実装することができる。(例えば、デスクトップ→新しいフォルダ→テキストファイルを実行していることを、マウスのクリックだけですべて行うことができますが、
- 簡単なAutoHotkeyインストールと基本的な使用方法、簡単な例
- 地球上で最も完全かつ簡単なAutoHotkeyマウスの移動と制御チュートリアル
マウス関連オートホットキー(AutoHotkey)マクロは、実際にはかなり多くの方法がありますが、「Click、MouseClickDrag、LeftClick、RightClick」等すべて必要なく、「MouseMove、MouseClick、MouseGetPos「ぴったり3つだけ知ってマウス関連のイベントをほとんどすべて実装することができる(後で「ControlClick」と実際のマウスは使わずに無効にコントロールクリックをすることもあったりだが、今の段階では進みようにする。)
「MouseMove」の機能と使用方法
MouseMove, X, Y [, Speed, Relative]
「MouseMove」にマウスを動かすには、コマンドを宣言し、入力された「X」の値(横)と「Y」の値(縦)で、マウスの座標を指定する。単位はピクセルであり、画面の左側の上部右に「100px」、下に「100px」の位置にマウスを移動したい場合は、次のようにコーディングする。
MouseMove, 100, 100
角括弧内の値は、必ず少なくても、コードが動作し、「Speed」にマウスが動く速度を定める。「0」であれば、すぐに動いて数値が高いほど、ゆっくり動いて「100」が限界だ。何も設定しない場合、デフォルトの「2」が適用される。マウスを「x100」、「y100」の座標に直接移動したい場合は、次のようにコーディングする。
MouseMove, 100, 100, 0
「Relative」は、従来の「X」、「Y」の値で絶対的な位置に移動するコマンドを相対的に変えてくれる、すなわち
MouseMove, 100, 100
は画面の「x100」、「y100」の位置にマウスを移動させるが
MouseMove, 100, 100, , R
このように「Relative」または「R」を追加すると、現在のマウスのポインタの位置から「X」軸に「100」だけに、「Y」軸に「100」だけ追加で移動する。負の値を書き留めてくれれば逆に動く。
「MouseClick」の機能と使用方法
MouseClick [, WhichButton, X, Y, ClickCount, Speed, DownOrUp, Relative]
基本的な動作は、「MouseMove」と同じだが、移動だけではなく、左クリック、右クリック、ホイールボタンのクリック、ホイールボタンArial、xボタン(ゲーミングマウスなどの左側にさらにボタンである)などの入力を同時に進行する。
かっこ内のコードは少なくても動作し、省略したときのデフォルト値は「WhichButton= Left」、「X、Y=現在の位置」、「ClickCount=1」、「Speed=2」である。
現在の位置でマウスの左クリックを一度するコードは以下の通りである。
MouseClick
現在の位置でマウスを右クリックを一度するコードは以下の通りである。(「Left」は左クリック、「Right」は右クリック、「Middle」はホイールクリック、「Wheelup」、「Wheeldown」にホイールを上下、「Xbutton1」、「xbutton2」などで特殊キーを入力することができており、それぞれ「L、R、M、WU、WD、X1、X2」に減らし書くことができる。
MouseClick, Right
「x100」、「y100」の座標をクリックするコードは次のとおりである。
MouseClick, Left, 100, 100
「x100」、「y100」の座標をダブルクリックするコードは次のとおりである。
MouseClick, Left, 100, 100, 2
「x100」、「y100」の座標をすぐに移動してダブルクリックするコードは次のとおりである。
MouseClick, Left, 100, 100, 2, 0
「x100」、「y100」の座標に移動し、左クリックを押したままにできるのは、次のとおりである。
MouseClick, Left, 100, 100, , , D
「x100」、「y100」の座標に移動し、左クリックを押してドラッグし、「x200」、「y200」の座標で左クリックを離し、ドラッグを終えるコードは次のとおりである。
MouseClick, Left, 100, 100, , , D MouseClick, Left, 200, 200, , , U
画面上の「x100」、「y100」の座標で、絶対値を介して移動するのではなく、現在のマウスポインタの位置から「x100」、「y100」だけ相対的に移動するためのコードは次のとおりである。
MouseClick, Left, 100, 100, , , , R
「MouseGetPos」の機能と使用方法
MouseGetPos [, OutputVarX, OutputVarY, OutputVarWin, OutputVarControl, Flag]
「MouseGetPos」に関連する機能は、上記のようですが、現在の私たちが望む、マウスコントロールのために
MouseGetPos, OutputVarX, OutputVarY
上記の機能だけを知ることになる。現在のマウスの位置の座標を「OuputVarX」、「OutputVarY'の値に保存するという意味であり、実際に現在のマウスの位置を保存して、「x100」、「y100座標に移動した後、再度保存された座標に戻ってくるコードは、次のと同じである。
MouseGetPos, 1X, 1Y MouseMove, 100, 100 MouseMove, %1X%, %1Y%
以下は、この「MouseGetPos」が、実際に最もよく使われる用途であるが、マウスの位置を保存し置いたが、保存しておいた場所から「x100」、「y100」だけ移動したところで動いてたければ次のようにコーディングすればよい。
MouseGetPos, 1X, 1Y MouseMove, 1X+100, 1Y+100
一見すると先に進んだ「MouseMove」の「Relative」機能と同じに見えますが、当該オートホットキー(AutoHotkey)が実行されている間、「1X」、「1Y」の値が格納されているので、いろいろ方面に活用が可能な便利な機能である。
実戦例
仕上げに、今日学んだ機能をすべて使用して、実際に「F1」ボタンを押すと、現在の位置を保存して、「x100」、「y100」の座標をクリックして戻ってくる実際のケースのコードを実装すると次の通りである。
F1:: MouseGetPos, 1X, 1Y MouseClick, Left, 100, 100 MouseClick, Left, %1X%, %1Y% Return
ぴったりこのページの内容だけ理解すれば、オートホットキー(AutoHotkey)の基礎的なマウスイベントは、マスターしたと見られる。だから一度に理解されていなくても、保存ヘジュォトダガ必要なときに再度見マスターできるようにしましょう。直接サンプルを貼り付けて使用してボドンガ、実際に学んだ内容でコーディングを試みるのが最も良い。
- 簡単なAutoHotkeyインストールと基本的な使用方法、簡単な例
- 地球上で最も完全かつ簡単なAutoHotkeyマウスの移動と制御チュートリアル