マウスマクロ

Logicoolマウスのマクロ作成(マウスカーソル操作編)

投稿日:2018年12月13日 更新日:

Logicoolゲーミングマウスのマクロ作成において、マウスカーソルを移動したり、現在のマウスカーソルの座標を取得するなどのマウスカーソルに関連する関数についてご紹介していきます。

ASUS フレームレスモニター 23.8インチ

サブディスプレイを追加してPC利用を効率化しませんか?価格も1万円台とリーズナブルです。

例:

  • ゲームをしながら、サブ画面で動画を視聴する
  • メイン画面で仕事・作業をしながら、サブ画面でメール確認や調べもの等を行う

USB3.0 to HDMI ディスプレイアダプタ

USBポートに接続することで、HDMIに対応したモニタを増設できるディスプレイアダプタ。

マウスカーソルを移動する(MoveMouseTo)

マウスカーソルを移動するには MoveMouseTo 関数を使います。

ただし、マルチディスプレイ環境でもメインディスプレイの中でしかマウスカーソルを移動することができません。 サブディスプレイにもマウスカーソルを移動させたい場合は、後述する MoveMouseToVirtual 関数を使用してください。

書式:

MoveMouseTo( x座標, y座標 )

指定する座標について:

メインディスプレイの一番左上が x座標:0, y座標:0 となります。
x座標と y座標の最大値は 65535 であり、 x座標:65535, y座標:65535 はメインディスプレイの一番右下を表します。

65535 以上の座標を指定するとエラーとなります。そのため、メインディスプレイを超えてマウスカーソルを移動させることはできません。

座標の最大値である 65535 という数字は解像度とも一致しないため、座標を指定しづらいと思います。 どちらかと言えばピクセルで指定する方が分かりやすいのではないでしょうか。 ピクセルの座標で移動位置を指定したい場合、以下のような計算式を使うと便利です。

(移動先のピクセル座標 ÷ メインディスプレイの解像度) × 65535

移動先のピクセル座標とメインディスプレイの解像度(最大ピクセル座標)の比率を算出し、65535 を掛けることで座標を変換しています。

画面左上を基点として右に 1000px、下に 800px の場所にマウスカーソルを移動させる例を考えてみます。

上記の例の場合、以下のように MoveMouseTo 関数を実行すると意図した座標にマウスカーソルを移動させることができます。

MoveMouseTo( (1000/1280)*65535, (800/1024)*65535 )

コーディング例:
-- 画面左上にマウスカーソルを移動させる
MoveMouseTo( 0, 0 )
-- 画面中央にマウスカーソルを移動させる
MoveMouseTo( 32767, 32767 )
-- x座標:100, y座標:200 の位置にマウスカーソルを移動させる
SCREEN_SIZE_X = 1920    -- 画面横の解像度
SCREEN_SIZE_Y = 1080    -- 画面縦の解像度
MoveMouseTo( (100/SCREEN_SIZE_X)*65535, (200/SCREEN_SIZE_Y)*65535 )

マルチディスプレイ環境でマウスカーソルを移動する(MoveMouseToVirtual)

マルチディスプレイ環境でマウスカーソルを移動するには MoveMouseToVirtual 関数を使います。

書式:

MoveMouseToVirtual( x座標, y座標 )

指定する座標について:

MoveMouseTo 関数と異なりサブディスプレイにもマウスカーソルを移動させることができます。
0 ~ 65535 の範囲で座標を指定する点は MoveMouseTo 関数と同じですが、サブディスプレイも含めた画面全体の中での座標を 0 ~ 65535 で指定します。

ピクセルの座標で移動位置を指定したい場合、以下のような計算式を使うと便利です。

x座標 : { 移動先のピクセル座標 ÷ (メインディスプレイの解像度 + サブディスプレイの解像度) } × 65535
y座標 : ( 移動先のピクセル座標 ÷ 縦の解像度が大きい方のディスプレイの解像度 ) × 65535

サブディスプレイの中央真下にマウスカーソルを移動させる例を考えてみます。

上記の例の場合、以下のように MoveMouseToVirtual 関数を実行すると意図した座標にマウスカーソルを移動させることができます。

MoveMouseTo( (1792/(1280+1024))*65535, (768/1024)*65535 )

コーディング例:
DISPLAY_1_SCREEN_SIZE_X = 1920    -- メインディスプレイの横の解像度
DISPLAY_1_SCREEN_SIZE_Y = 1080    -- メインディスプレイの縦の解像度
DISPLAY_2_SCREEN_SIZE_X = 1024    -- サブディスプレイの横の解像度
-- 画面左上にマウスカーソルを移動させる
MoveMouseToVirtual( 0, 0 )
-- メインディスプレイとサブディスプレイの中間にマウスカーソルを移動させる
MoveMouseToVirtual( (DISPLAY_1_SCREEN_SIZE_X/(DISPLAY_1_SCREEN_SIZE_X+DISPLAY_2_SCREEN_SIZE_X))*65535, 0.5*65535 )
-- x座標:100, y座標:200 の位置にマウスカーソルを移動させる
MoveMouseTo( (100/(DISPLAY_1_SCREEN_SIZE_X+DISPLAY_2_SCREEN_SIZE_X))*65535, (200/DISPLAY_1_SCREEN_SIZE_Y)*65535 )

マウスカーソルを相対座標で移動する(MoveMouseRelative)

現在の位置からの相対座標でマウスカーソルを移動するには MoveMouseRelative 関数を使います。

書式:

MoveMouseRelative( x軸の移動値, y軸の移動値 )

指定する移動値について:

MoveMouseTo 関数や MoveMouseToVirtual 関数と異なり、指定する値の単位はピクセルです。
x座標にマイナスの値を指定すると左方向に、プラスの値を指定すると右方向にマウスカーソルが移動します。
y座標にマイナスの値を指定すると上方向に、プラスの値を指定すると下方向にマウスカーソルが移動します。

コーディング例:
-- 左に 100ピクセル分マウスカーソルを移動する
MoveMouseRelative( -100, 0 )
-- 右に 100ピクセル分マウスカーソルを移動する
MoveMouseRelative( 100, 0 )
-- 上に 100ピクセル分マウスカーソルを移動する
MoveMouseRelative( 0, -100 )
-- 下に 100ピクセル分マウスカーソルを移動する
MoveMouseRelative( 0, 100 )

マウスカーソルの座標を取得する(GetMousePosition)

現在のマウスカーソルの位置を取得するには GetMousePosition 関数を使います。

書式:

GetMousePosition()

戻り値:

 1. マウスカーソルの現在の x座標
 2. マウスカーソルの現在の y座標

取得できる座標について:

座標はメインディスプレイの縦、横のサイズを 65535 とした場合の値で返されます。
サブディスプレイ上の座標については、メインディスプレイの解像度との比率で計算されます。

以下は横の解像度が 1920px と 1024px のディスプレイを使っている場合の例です。
全体の解像度に対するメインディスプレイとサブディスプレイの解像度の比率は 1 : 0.53 となります。
メインディスプレイの横のサイズを 65535 とした時のサブディスプレイの横のサイズは 34970 となり、こちらも比率が 1 : 0.53 となっています。

コーディング例:
DISPLAY_1_SCREEN_SIZE_X = 1920    -- メインディスプレイの横の解像度
DISPLAY_1_SCREEN_SIZE_Y = 1080    -- メインディスプレイの縦の解像度
DISPLAY_2_SCREEN_SIZE_X = 1024    -- サブディスプレイの横の解像度
-- 現在のカーソルの位置を取得する
curX, curY = GetMousePosition()
-- y座標は動かさず、指定した x座標(左から600pxの場所)にマウスカーソルを移動させる
MoveMouseToVirtual( (600/(DISPLAY_1_SCREEN_SIZE_X+DISPLAY_2_SCREEN_SIZE_X))*65535, curY )

まとめ

今回はマウスカーソルの操作に関連する 4 つの関数をご紹介させていただきました。

  • マウスカーソルを移動する(MoveMouseTo)
  • マルチディスプレイ環境でマウスカーソルを移動する(MoveMouseToVirtual)
  • マウスカーソルを相対座標で移動する(MoveMouseRelative)
  • マウスカーソルの座標を取得する(GetMousePosition)

これまでの記事で Logicool 製のゲーミングマウスでマクロをプログラミングするための基本的なノウハウについては解説できたと思います。
今後はプログラミング言語の Lua に関する解説やサンプルコードなどをご紹介できればと考えています。


その他の関数の解説記事

Logicoolマウスのマクロ作成(ボタン操作編)
Logicoolマウスのマクロ作成(キー操作編)

その他のマクロ(スクリプト)関連ページはこちら

Logicoolゲーミングマウスのマクロ(スクリプト)関連ページ一覧

ディスプレイやキーボード・マウス・スマホ 汚れていませんか?

皮脂や唾、手垢、汗などで表面は見えない雑菌だらけです。 衛生上も問題ですし、気持ち良く使うためにも、こまめに拭きとってキレイにしましょう。

エレコム クリーナー ウェットティッシュ 液晶用

  • 拭き跡が残りにくい
  • 帯電防止効果で拭いた後にホコリがつきにくい
  • ディスプレイの表面加工を傷めないノンアルコールタイプ

液晶用と書いてありますが、キーボードやマウス、タブレット、スマホなどにも使えます。
大容量なので 1つ置いておくだけでも、気付いた時にすぐ掃除ができて便利です。

おすすめのゲーミングマウス

Logicool ロジクール ゲーミング マウス G402

  • 500IPSを超えるトラッキング速度
  • 8個のプログラム可能なボタン
  • ボタンによるDPIの素早い切り替え
  • 1msのレポートレート
  • 高速なクリック(連打)を実現

Logicool ロジクール ゲーミング マウス G502 HERO

  • 400IPSを超えるトラッキング速度
  • 11個のプログラム可能なボタン
  • 100~16,000の全DPIでゼロスムージング、ゼロフィルタリング、ゼロアクセラレーションを達成
  • 1msのレポートレート
  • マウスの重さを調整可能

Logicool G ゲーミングマウス ワイヤレス G604

  • 400IPSを超えるトラッキング速度
  • 15個のプログラム可能なボタン
  • 100~16,000の全DPIでゼロスムージング、ゼロフィルタリング、ゼロアクセラレーションを達成
  • 1msのレポートレート
  • ワイヤレス

Logicool ロジクール ゲーミング マウス G600t

  • MMO に最適な 20個のプログラム可能なボタン
  • 親指だけで 12個のボタンを瞬時に押せるサムパネル
  • 1msのレポートレート


スポンサーリンク

毎日の飲料は箱買いで年間数千円もお得に (Amazon)




おすすめ記事

1
Logicool(ロジクール)のゲーミングマウスではマクロを作って自動的な操作を実現することができます。 ボタン 1 つ押すだけで複雑な操作が自動で行えるようになり、定型的な操作を効率良く楽に行えるよ ...
2
バウヒュッテ(Bauhutte)のゲーミングチェア : RS-950RR の使用感などをレポートさせていただきたいと思います。一般的なオフィスチェアよりも断然座り心地が良く、私には合っていました。オス ...
3
キーボード・マウスでの操作に慣れているのに、PS4 や Xbox のコントローラで FPS/TPSゲームをプレイするとうまく操作できず、歯がゆい思いをされていないでしょうか。ゲームソフト側が対応してい ...
4
「なろう系」作品の中で、定期的に読み返したくなるオススメの作品をご紹介させていただきます。 ありがちな俺TUEEEチート系の作品はなく、これだけは読んでほしいという面白い作品を厳選しています。 「なろ ...

-マウスマクロ

Copyright© ArekoReport , 2023 All Rights Reserved.