AutoHotKey v2 マウス左ボタン押しっぱなしで連続クリックさせる手順

任意のマクロを設定して PC の作業効率を向上させる無料ソフト AutoHotkey v2 で、マウス左ボタンを押しっぱなしの状態で連続クリックさせるスクリプトを作成して、何度もクリックしなくても押しっぱなしで連射できるようにする手順を紹介します。
AutoHotkey のスクリプトで用いた関数などの簡単な説明と、.ahk スクリプトの実行と終了の手順も紹介します。

AutoHotKey 公式サイトの一部20240706

※ AutoHotkey 2.0 を使用しています。 AutoHotkey は自己責任でご利用ください。
※ スクリプトは自己責任で利用してください。

前回の記事

前回は、AutoHotkey を公式サイトからダウンロードしてインストールしました。
また、安全性の確認なども行いました。

AutoHotkey スクリプトの実行方法

AutoHotkey をインストールした後は、 .ahk という形式のファイルをダブルクリックするだけで、 AutoHotkey がそのスクリプトに書かれているマクロ操作を行ってくれます。

.ahk ファイルは、普通のテキストエディタで編集して、保存時に .txt ではなく .ahk に拡張子を変えたものです。
.ahk にすると、 AutoHotkey のアイコンに変わりました。

AutoHotkey2 スクリプトのファイルアイコン

以下は、他サイト様「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 が文字列に含まれています。

~ は、ホットキーが押されたときに、その本来の機能をブロックしないようにします。
今回の場合は、マウス左ボタンが押されたイベントをブロックしないので、マウス左ボタンが押された際に通常通りのマウス左ボタンが押された場合の動作が行われます

~no-suppress)は、ホットキーがそのキーのネイティブ機能をブロックするのを防ぎます。

ホットキーの書き方|AutoHotkey v2

$ は、スクリプト内でクリックやキー押下などの送信をおこなうことで、最初の呼び出し元になるホットキーを無限に呼び出してしまうループを防止します。
今回のように、ホットキーと同じ入力(今回ならばホットキーはマウス左ボタンで、内部で左ボタンのクリックを送信しています)をスクリプト内で行う場合に有用です。

$use hook)は、キー送信時の意図しないループを防止し、場合によってはホットキーの信頼性を高めることができます。

ホットキーの書き方|AutoHotkey v2

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 のアイコンが表示され、マウスを合わせるとファイル名も表示されます。

AutoHotkey2 スクリプト実行時の常駐トレイのアイコン

右クリックメニューで「Exit」を選択することで、その AutoHotkey スクリプトを終了できます。

AutoHotkey2 スクリプト実行の終了

まとめ

今回は、任意のマクロを設定して PC の作業効率を向上させる無料ソフト AutoHotkey v2 で、マウス左ボタンを押しっぱなしの状態で連続クリックさせるスクリプトを作成して、何度もクリックしなくても押しっぱなしで連射できるようにする手順を紹介します。
AutoHotkey のスクリプトで用いた関数などの簡単な説明と、.ahk スクリプトの実行と終了の手順も紹介します。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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