任意のマクロを設定して PC の作業効率を向上させる無料ソフト AutoHotkey v2 で、マウス左ボタンを押しっぱなしの状態で連続クリックさせるスクリプトを作成して、何度もクリックしなくても押しっぱなしで連射できるようにする手順を紹介します。
AutoHotkey のスクリプトで用いた関数などの簡単な説明と、.ahk スクリプトの実行と終了の手順も紹介します。
※ AutoHotkey 2.0 を使用しています。 AutoHotkey は自己責任でご利用ください。
※ スクリプトは自己責任で利用してください。
前回の記事
前回は、AutoHotkey を公式サイトからダウンロードしてインストールしました。
また、安全性の確認なども行いました。
AutoHotkey スクリプトの実行方法
AutoHotkey をインストールした後は、 .ahk という形式のファイルをダブルクリックするだけで、 AutoHotkey がそのスクリプトに書かれているマクロ操作を行ってくれます。
.ahk ファイルは、普通のテキストエディタで編集して、保存時に .txt ではなく .ahk に拡張子を変えたものです。
.ahk にすると、 AutoHotkey のアイコンに変わりました。
以下は、他サイト様「Windows10でマウスのクリックを押しっぱなしで連打する方法【自動ツール】」で公開されていたマウス左ボタンを押しっぱなしにしている間、連続クリックを行う AutoHotkey v1 用のスクリプトを v2 用に書き直したものです。
※ v2 に書き直した後、動作確認をしていますが、自己責任で利用してください。
※ v1 と v2 では構文や関数の戻り値が異なる場合があるので、リファレンスはバージョンにあったものを参照しましょう。
~$LButton::
{
If !KeyWait("LButton", "T0.5")
{
While GetKeyState("LButton", "P")
{
Click
Sleep 50
}
}
}
上記の .ahk を実行すると、 0.5 秒以上マウス左ボタンを押し続けた後は 0.05 秒ごとにクリックイベントが送信されて、クリックを連射することと同じ動作になります。
※押している間は、常にダブルクリックをしているような状態になるので注意して使いましょう。
1行目のホットキーの定義
1行目は、ホットキーを定義しています。
そのキーが入力された際に実行する処理を直後の {} 内に書きます。
今回は、マウス左ボタンがホットキーとなっているので、 LButton が文字列に含まれています。
~ は、ホットキーが押されたときに、その本来の機能をブロックしないようにします。
今回の場合は、マウス左ボタンが押されたイベントをブロックしないので、マウス左ボタンが押された際に通常通りのマウス左ボタンが押された場合の動作が行われます。
ホットキーの書き方|AutoHotkey v2
~
(no-suppress)は、ホットキーがそのキーのネイティブ機能をブロックするのを防ぎます。
$ は、スクリプト内でクリックやキー押下などの送信をおこなうことで、最初の呼び出し元になるホットキーを無限に呼び出してしまうループを防止します。
今回のように、ホットキーと同じ入力(今回ならばホットキーはマウス左ボタンで、内部で左ボタンのクリックを送信しています)をスクリプト内で行う場合に有用です。
ホットキーの書き方|AutoHotkey v2
$
(use hook)は、キー送信時の意図しないループを防止し、場合によってはホットキーの信頼性を高めることができます。
3行目の押しっぱなしの判定
If !KeyWait("LButton", "T0.5")
は、 KeyWait 関数でキーやボタンが「押された状態から離される」または「押されていない状態から押される」まで指定した秒数だけ待つ関数です。
待ち時間を指定した場合、その時間を過ぎても変化がなければ 0 を、それ以外は 1 を返します。
今回は LButton が押された後に 0.5 秒経過しても LButton を離していない場合はタイムアウトで 0 を返し、これが 0.5 秒押しっぱなしであったことの確認になります。
Waits for a key or mouse/controller button to be released or pressed down.
This function returns 0 (false) if the function timed out or 1 (true) otherwise.
KeyWait – Syntax & Usage | AutoHotkey v2
5 ~ 9行目で、押されている間、クリック連射
5~9行目は、マウス左ボタンが押しっぱなしの状態と判定された後の処理です。
While は () 内の条件が満たされている間、{} 内の処理を繰り返します。
While GetKeyState("LButton", "P")
{
Click
Sleep 50
}
GetKeyState は、キーやボタンが押されているかどうかを判定します。
第一引数は、押されているかを確認する対象のキーやボタンで、例では LButton です。
第二引数の P は物理的にキーが押されているかを確認する際に指定します。
押されている場合は 1 (true) を返します。
This function returns 1 (true) if the key is down (or toggled on) or 0 (false) if it is up (or toggled off).
GetKeyState – Syntax & Usage | AutoHotkey v2
この While ループでは、Click でクリックを送信し、Sleep で 0.05 秒待機して、その後ふたたび GetKeyState でマウス左ボタンが押されているかを確認して、押されている間 0.05 秒ごとにクリックを送信して連射を行います。
マウス左ボタンが離されていれば、このループ処理は終わります。
AutoHotkey スクリプトの終了方法
AutoHotkey のスクリプト (.ahk) を実行中は、右下の常駐アイコンに AutoHotkey のアイコンが表示され、マウスを合わせるとファイル名も表示されます。
右クリックメニューで「Exit」を選択することで、その AutoHotkey スクリプトを終了できます。
まとめ
今回は、任意のマクロを設定して PC の作業効率を向上させる無料ソフト AutoHotkey v2 で、マウス左ボタンを押しっぱなしの状態で連続クリックさせるスクリプトを作成して、何度もクリックしなくても押しっぱなしで連射できるようにする手順を紹介します。
AutoHotkey のスクリプトで用いた関数などの簡単な説明と、.ahk スクリプトの実行と終了の手順も紹介します。
参照サイト Thank You!
- AutoHotkey
- Windows10でマウスのクリックを押しっぱなしで連打する方法【自動ツール】
- AutoHotkey Wiki
- クイックリファレンス|AutoHotkey v2
- ホットキーの書き方|AutoHotkey v2
- KeyWait – Syntax & Usage | AutoHotkey v2
- GetKeyState – Syntax & Usage | AutoHotkey v2
記事一覧 → Compota-Soft-Press
コメント