Blog

マウスポインタを見失う

どこに行ったのか,よく探しています

ふとした時にマウスポインタを見失う

 私は自宅と職場でPCを使うときはトリプルモニタ環境で使っています。最近メインモニタが4Kになって画面が広くなったせいか,マウスポインタを見失うことが多くなりました。Ctrlキーを押すとマウスポインタの位置を教えてくれるように設定しているのですが,それでも見つからないこともあるので何とかしたいと考えていました。

画面の中央に移動すれば見つけやすい

 自分なりに考えた解決案は「指定したキーを押したら画面の中央にマウスポインタを移動する」でした。実現する方法がないか検索したところ,フリーソフトで実現できそうなものがありました。もう少し検索を進めると複数のサイトで,AutoHotKeyで実現可能という内容を見つけました。AutoHotKeyはすでに使っているので早速とりかることにしました。

参考サイトのスクリプトがうまく動かない

 今回は2つのサイトの記事を参考にしました。参考サイト1のスクリプトを使ったところ,メインの4Kモニタにはマウスポインタが画面中央に移動したのですが,両サイドのモニタの中央には移動しませんでした。
次に参考サイト2のスクリプトを使いましたが,こちらも思ったような動作はしませんでした。

モニタ情報を取得して考える

 解決策を考えるにあたって,参考サイト1の解説の中にAutoHotKeyのwikiページにモニタ情報を表示するサンプルスクリプトが紹介されていたので,それを使ったところ以下のように表示されました。

Monitor1:左端0,右端3,840,上端0,下端2,160(3,840x2,160)→メインの4Kモニタ
Monitor2:左端-2,400,右端0,上端760,下端2,110(2,400x1,350)→左側のDELLのフルHDモニタ
Monitor3:左端4,800,右端6,150,上端293,下端2,693(1,350x2,400)→右側のhpのフルHDモニタ

座標から何番がどのモニタかはすぐにわかったのですが,Monitor2と3はフルHDモニタなのに解像度が2,400x1,350というのが不思議でした。
しばらく考えて思い出したことが,メインの4Kモニタの表示を125%に拡大していたことでした。フルHDの解像度1,920x1,080をそれぞれ1.25倍すると,2,400x1,350になったのでこれで間違いないと思い,スクリプトを修正したところマウスポインタが画面中央に表示されました。

オリジナルスクリプトをつくる

 参考サイト2の解説にはスクリプトの説明が丁寧に書いてありましたので,それを参考にしながら,参考サイト1のスクリプトを書き換えることにしました。
具体的な動作としては,現在のマウスポインタの位置を取得してマウスポインタがあるモニタを特定し,その右隣のモニタの中央にマウスポインタを移動するというものになります。出来上がったスクリプトが以下のものです。

F16::
SysGet, MonitorC, Monitor, 1
SysGet, MonitorL, Monitor, 2
SysGet, MonitorR, Monitor, 3
CoordMode, Mouse, Screen
MouseGetPos, x, y
If x < %MonitorCLeft%
  MouseMove, (MonitorCLeft + MonitorCRight) / 2, (MonitorCTop + MonitorCBottom) / 2
Else If x > %MonitorCRight%
  MouseMove, (MonitorLLeft/1.25 + MonitorLRight/1.25) / 2, (MonitorLTop/1.25 + MonitorLBottom/1.25) / 2
Else
  MouseMove, (MonitorRLeft/1.25 + MonitorRRight/1.25) / 2, (MonitorRTop/1.25 + MonitorRBottom/1.25) / 2
Return

F16キーにスクリプトを割り当て,左手デバイスのACK05に登録してボタン一発で動作するようにしました。これでマウスポインタを見失ってもすぐに見つけることができるので安心です。
【追記】同じ手順で職場のPCにもこの機能を実装しました。

この記事へのコメント

コメントはまだありません。

コメントを送る

必須
 
※ メールアドレスは公開されません
任意
必須
Loading...  画像の文字を入力してください
9
10
11
12
13
14
15
16