Logicoolゲーミングマウスのマクロ(スクリプト)についてサンプルコードをご紹介する記事です。本記事では、特定座標にマウスを移動し、マウスボタン/キーを繰り返しクリックする簡単なサンプルをご紹介させていただきます。
目次
サンプルコード
まずはサンプルコードをご覧ください。
以下は特定座標をクリックし、enter キーをクリックする動作を繰り返し行うサンプルコードです。
マウスボタンやキーを繰り返しクリックする動作自体は、ボタンの割り当てやマルチキー機能でも実現することができます。
ただし、マウスのボタンを押している間のみ繰り返しクリックさせることができるため、常にマウスボタンを押しておく必要があります。また、マウスカーソルの移動はできません。
一方、以下のサンプルでは ctrl キーを押すまで処理が永遠に続くようになっています。
そのため、処理を起動した後は、自分は別のことをやりながらマウス/キー操作を自動で行わせておき、任意のタイミングで処理を中断することができます。
手を離していても自動で処理させられる点がスクリプトによるマクロの非常に優秀な点です。
-- ディスプレイの解像度
SCREEN_WIDTH = 1920 -- ディスプレイの横の解像度
SCREEN_HEIGHT = 1080 -- ディスプレイの縦の解像度
-- マウスカーソルの移動先 X,Y座標(ピクセル)
MOVE_X_1 = 490
MOVE_Y_1 = 300
function OnEvent(event, arg)
--OutputLogMessage("event = %s, arg = %s\n", event, arg);
-- イベントが発生したボタン番号をチェックする
if arg == 4 and event == "MOUSE_BUTTON_PRESSED" then
-- 番号 4 のマウスボタンでイベントが発生した場合
OutputLogMessage("Start script\n");
-- ctrl キーが押されていない間は処理を続ける
while not IsModifierPressed( "ctrl" ) do
-- 指定座標にマウスカーソルを移動させる
MoveMouseTo( 65535 * MOVE_X_1/SCREEN_WIDTH, 65535 * MOVE_Y_1/SCREEN_HEIGHT )
Sleep( 200 )
-----------------------------
-- マウスを左クリックする(押す→離す)
-----------------------------
PressMouseButton( 1 )
Sleep( 200 )
ReleaseMouseButton( 1 )
Sleep( 1000 )
-----------------------------
-- enter キーをクリックする(押す→離す)
-----------------------------
PressKey( "enter" )
Sleep( 200 )
ReleaseKey( "enter" )
Sleep( 1000 )
end
OutputLogMessage("End script\n");
end
end
コード解説
ディスプレイの解像度やマウスカーソルの移動先座標を定義する
対象行 : 1 ~ 7 行目
-- ディスプレイの解像度
SCREEN_WIDTH = 1920 -- ディスプレイの横の解像度
SCREEN_HEIGHT = 1080 -- ディスプレイの縦の解像度
-- 最初のマウスカーソルの移動先 X,Y座標
MOVE_X_1 = 490
MOVE_Y_1 = 300
ディスプレイの解像度やマウスカーソルを移動させる座標をピクセルで定義しています。
マウスカーソルを移動させる命令では座標を 1 ~ 65535 の範囲で指定する必要があり、ピクセルの座標に変換するためにディスプレイの解像度を定義しておく必要があります。
詳しくは以下の記事で解説していますので、そちらをご参照ください。
Logicoolマウスのマクロ作成(マウスカーソル操作編)
イベントが発生したボタン番号をチェックする
対象行 : 13 行目if arg == 4 and event == "MOUSE_BUTTON_PRESSED" then
番号 4 のボタンが押されたかどうかを判定しています。処理の起動トリガとして使いたいボタンに合わせてボタン番号は適宜変更してください。
ボタン番号の確認方法などは以下の記事でも解説していますので、ご参照ください。
Logicoolマウスのマクロ作成(エディタ起動方法~初期コード解説)
ちなみに、私が使っている G502 HERO では親指のあたりのボタンが番号 4 に当たります。つまり、赤い丸で囲まれているボタンを押すと、サンプルコードの処理が行われることになります。

ctrl キーが押されていない間、処理を続ける
対象行 : 19 ~ 42 行目while not IsModifierPressed( "ctrl" ) do
~~~
end
条件を満たす間、while と end の間に記述された処理を繰り返し実行します。条件は while と do の間に記載し、今回の場合は not IsModifierPressed( "ctrl" ) が該当します。
IsModifierPressed 関数は指定したキーが押されているかどうかを教えてくれる命令です。パラメータとして"ctrl"を指定していますので、ctrl キーが押されていれば True、押されていなければ False が返ってきます。
さらに IsModifierPressed の前に not を付けていますので、結果は反転し、ctrl キーが押されていない場合に True となり、条件が成立します。
つまり、ctrl キーが押されていない間、while と end に囲まれた 20 ~ 41 行目の処理を繰り返し実行することになります。
なお、処理を中断させるキーとして ctrl キーを使っていますが、shift や alt キーでも構いません。
IsModifierPressed 関数については以下の記事でも解説していますので、ご参照ください。
Logicoolマウスのマクロ作成(キー操作編)
指定座標にマウスカーソルを移動させる
対象行 : 22 ~ 23 行目
MoveMouseTo( 65535 * MOVE_X_1/SCREEN_WIDTH, 65535 * MOVE_Y_1/SCREEN_HEIGHT )
Sleep( 200 )
6 ~ 7 行目で定義しておいた座標にマウスカーソルを移動させています。
マウスカーソルを移動させてすぐに次の処理を行うと、アプリケーションがマウスカーソルの移動をまだ認識していない可能性があるので、Sleep 命令で 200 ミリ秒ほど待機させています。
待機させる適切な時間は環境によって異なりますので、必要に応じて増減させてみてください。
MoveMouseTo 関数については以下の記事でも解説していますので、ご参照ください。
Logicoolマウスのマクロ作成(マウスカーソル操作編)
マウスを左クリックする
対象行 : 27 ~ 29 行目
PressMouseButton( 1 )
Sleep( 200 )
ReleaseMouseButton( 1 )
マウスの左ボタンでクリックさせています。
PressAndReleaseMouseButton 命令でもクリックさせられるのですが、アプリケーションによってはクリックとして認識しない場合があります。そのため、ボタンを押す動作(PressMouseButton)とボタンを離す動作(ReleaseMouseButton)に分けて命令しています。
PressMouseButton 関数や ReleaseMouseButton 関数については以下の記事でも解説していますので、ご参照ください。
Logicoolマウスのマクロ作成(ボタン操作編)
enter キーをクリックする
対象行 : 36 ~ 38 行目
PressKey( "enter" )
Sleep( 200 )
ReleaseKey( "enter" )
enter キーをクリックさせています。
PressAndReleaseKey 命令でもクリックさせられるのですが、アプリケーションによってはクリックとして認識しない場合があります。そのため、キーを押す動作(PressKey)とキーを離す動作(ReleaseKey)に分けて命令しています。
PressKey 関数や ReleaseKey 関数については以下の記事でも解説していますので、ご参照ください。
Logicoolマウスのマクロ作成(キー操作編)
まとめ
今回のサンプルのポイントは以下の通りです。
- 繰り返し行いたい処理を while ~ end で囲む
- IsModifierPressed 関数によって ctrl, shift, alt キーのいずれかが押されていないことを判定し、while 文の繰り返し条件とする
処理を繰り返す条件を「特定キーのクリック有無」としていますが、実行を開始してからの時間(〇〇分経過するまで など)や特定時刻までとするなどの派生形も考えられます。
また、while ~ end で囲まれた処理をすべて実行しないと終了条件の判定を行わないため、処理のどこにおいても自由に処理を中断できるようにすると、より使い易くなると思います。
機会がありましたら、上記の派生形や改善を組み込んだサンプルコードについてもご紹介させていただければと思います。
Logicoolゲーミングマウスのマクロ(スクリプト)関連ページ一覧
皮脂や唾、手垢、汗などで表面は見えない雑菌だらけです。 衛生上も問題ですし、気持ち良く使うためにも、こまめに拭きとってキレイにしましょう。