Logicoolゲーミングマウスではマクロにより定型的な操作を自動的に実行させることができます。
前回の記事ではLogicoolゲーミングマウスのスクリプトエディタの起動と初期コードの解説を行いました。
今回はマクロを作成する場合のプログラムコードの基本形について解説したいと思います。
目次
コードの基本形
基本的なコードの形は以下のようになります。
※あくまで私個人のやり方なので、他に良いコードはあると思います。
EnablePrimaryMouseButtonEvents( true );
function OnEvent(event, arg)
--OutputLogMessage("event = %s, arg = %s\n", event, arg);
if ( arg == X ) then -- X にはボタンに合わせて任意のボタン番号を記述します
-------------------------------------------------------
-- ボタンX でイベントが発生した場合の処理
-------------------------------------------------------
if ( event == "MOUSE_BUTTON_PRESSED" ) then
-------------------------------------------------------
-- ボタンが押されてイベントが発生した場合の処理
-------------------------------------------------------
★ボタンX が押された場合に行いたい処理をここに記述します
elseif ( event == "MOUSE_BUTTON_RELEASED" ) then
-------------------------------------------------------
-- ボタンが離されてイベントが発生した場合の処理
-------------------------------------------------------
★ボタンX が離された場合に行いたい処理をここに記述します
end
elseif ( arg == Y ) then -- Y にはボタンに合わせて任意のボタン番号を記述します
-------------------------------------------------------
-- ボタンY でイベントが発生した場合の処理
-------------------------------------------------------
~ 省略 ~
end
end
左クリック時のイベント発生を有効化する
対象行: 1 行目EnablePrimaryMouseButtonEvents( true );
マウスの左ボタン(通常のクリックで使用するボタン)は押される機会が多いため、パフォーマンスの観点から通常はイベントが発生しないようになっています。左ボタンが押されたり離されたりした時も何らかの自動操作を行いたい場合は、この命令を実行することでイベントが発生するようになります。
左ボタンを押したり離したりしたときに自動操作を行う必要がない場合、この行はコメントアウトしておいてください。 先頭に"-"(ハイフン)を 2 つ付けることで、その行に記載されている内容はコメントとして扱われ、プログラムコードとしては認識されなくなります。
ボタン番号、イベント内容をコンソールに出力する
対象行: 4 行目--OutputLogMessage("event = %s, arg = %s\n", event, arg);
event、arg パラメータの内容をコンソールに出力する命令です。
event パラメータにはボタンが押された(MOUSE_BUTTON_PRESSED)、またはボタンが離された(MOUSE_BUTTON_RELEASED)ことを示す情報が入っています。
arg パラメータにはイベントが発生した(押されたり離されたりした)ボタンを識別する番号が入っています。
ボタンを押すたびにメッセージが出力されるのは邪魔になるのでコメントアウトして無効化しています。
どのボタンが押されたか(離されたか)判定する
対象行: 6 行目if ( arg == X ) then
arg パラメータにはイベントが発生したボタンの番号が入っていますので、意図したボタンで発生したイベントかどうかを判定しています。
"X" の部分には自動操作のトリガとして使いたいボタン(※)の番号を記載します。
※押したり離したりしたときに自動操作を起動したいボタン
例えば、マウスのとあるサイドボタン(ボタン番号:7)を押したときに何らかの処理を行いたい場合、以下のようになります。
if ( arg == 7 ) then
ボタン番号が分からない場合は 4 行目のコードのコメントアウトを解除(先頭 2 つのハイフンを削除)して、番号を確認したいボタンを押してください。
コンソールに出力されたメッセージの arg パラメータの内容がボタン番号です。
event = MOUSE_BUTTON_PRESSED, arg = 7
ボタン番号だけだと後でコードを見たときにどのボタンのことを指しているのか分からなくなるため、分かりやすいようにコメントを入れておくと良いでしょう。
-- サイドの左上のボタン
if ( arg == 7 ) then
ボタンが押されたのか判定する
対象行:11 ~ 16 行目
if ( event == "MOUSE_BUTTON_PRESSED" ) then
-------------------------------------------------------
-- ボタンが押されてイベントが発生した場合の処理
-------------------------------------------------------
★ボタンX が押された場合に行いたい処理をここに記述します
event パラメータには発生したイベントの内容が入っていますので、マウスのボタンが押されたことにより発生したイベントかどうかを判定しています。
条件に該当する場合、ボタンX が押された時に行いたい自動操作をここに記述します。
ボタンが離されたのか判定する
対象行: 18 ~ 23 行目
elseif ( event == "MOUSE_BUTTON_RELEASED" ) then
-------------------------------------------------------
-- ボタンが離されてイベントが発生した場合の処理
-------------------------------------------------------
★ボタンX が離された場合に行いたい処理をここに記述します
11 行目と同様に、マウスのボタンが離されたことにより発生したイベントかどうかを判定しています。
条件に該当する場合、ボタンX が離された時に行いたい自動操作をここに記述します。
まとめ
- 左ボタンのイベントを処理したい場合は EnablePrimaryMouseButtonEvents( true ) を実行する
- arg パラメータにより意図したボタンで発生したイベントかどうかをチェックする
- event パラメータによりボタンが押されたのか離されたのかをチェックする
自動操作を記述する前段階として、トリガとなるボタンや発生したイベント内容をチェックする部分のコードを基本形としてご紹介させていただきました。
マウスのボタンを押す、特定のキーを押す、マウスカーソルを動かすなどの自動操作の記述については別途ご紹介したいと思います。
Logicoolゲーミングマウスのマクロ(スクリプト)関連ページ一覧
皮脂や唾、手垢、汗などで表面は見えない雑菌だらけです。 衛生上も問題ですし、気持ち良く使うためにも、こまめに拭きとってキレイにしましょう。