マルチディスプレイ間のマウスカーソル移動

AutoHotKeyを使って,キーを押すことでモニター間のマウスカーソル移動ができるようにするという話です.

ディスプレイを横に並べて3枚使っているのですが,マウス移動が,距離が長くなり少々めんどくさいというのがあります.

こちらのサイト

トリプルモニタ間のマウス移動をボタン1つで実現!圧倒的に快適な業務環境の構築メモ

を参考にして,F1,F4キーで左右のディスプレイを切り替えるための,AutoHotKeyスクリプトを作りました.

F1::
	SysGet, MonitorC, Monitor, 1
	SysGet, MonitorL, Monitor, 3

	CoordMode, Mouse, Screen
	MouseGetPos, x, y
	If x < %MonitorCRight%
		MouseMove, (MonitorLLeft + MonitorLRight) / 2, (MonitorLTop + MonitorLBottom) / 2
	Else
		MouseMove, (MonitorCLeft + MonitorCRight) / 2, (MonitorCTop + MonitorCBottom) / 2
	Return
F4::
	SysGet, MonitorC, Monitor, 1
	SysGet, MonitorR, Monitor, 2

	CoordMode, Mouse, Screen
	MouseGetPos, x, y
	If x < %MonitorCLeft%
		MouseMove, (MonitorCLeft + MonitorCRight) / 2, (MonitorCTop + MonitorCBottom) / 2
	Else
		MouseMove, (MonitorRLeft + MonitorRRight) / 2, (MonitorRTop + MonitorRBottom) / 2
	Return

自分の環境では,モニター番号1が中央,2が右,3が左となっています.

マウスカーソルのx座標によって現在カーソルがあるモニターが求まるので,
それによって移動先のモニターを決めて,その中央座標にマウスカーソルをMouseMoveしています.

それぞれの環境でモニター番号は変わると思いますが,
SysGet – AutoHotkey Wiki

のサンプルスクリプトでモニター情報は取れると思います.

Comment