web-dev-qa-db-ja.com

2つの画面間でマウスカーソルを移動するWindowsキーボードショートカット

メイン画面(A)と接続されたもの(B)を備えたラップトップを持っています。

マウスが1つの画面(B)にあり、別の画面(A)に配置したい場合がありますが、マウスが配置されていない1つの画面(A)だけを見ています。たくさんドラッグして、それがAに表示されるのを見て探すことができます。または、Bがオンの場合は、頭をBに向けて、カーソルの位置を確認できます(B)。移動するとAに移動しますが、キーボードショートカットだけでノートパソコンの画面の中央にマウスカーソルを合わせると、もっと簡単になります(A)。

つまり、カーソルをある画面から別の画面に移動し、中心のような場所に移動します。それを行うマウスの動きでさえ、マウスがどこにあっても動きやキーが機能する限り、問題ありません。方法はありますか?

7
barlop

" CoordMode "および " MouseMove "コマンドで AutoHotKey を使用します。

CoordMode:

さまざまなコマンドの座標モードを、アクティブウィンドウまたは画面のどちらかを基準にして設定します。

MouseMove:

マウスカーソルを移動します。

これを現在の画面の中央に移動する例を次に示します。

!z::
CoordMode, Mouse, Screen
MouseMove, (A_ScreenWidth // 2), (A_ScreenHeight // 2)
return
8

このスクリプトは私にとってはうまくいきます:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.


#SingleInstance Force ; if the script is updated, replace the one and only instance

!m::

; 80 = CM_MONITORS - which basically means - monitor count
SysGet, count, 80
if count !=2 return ; only handle duo, uno - nothing to do

CoordMode, Mouse, Screen    ; this is a must as the mouse coordinate are now relative to the whole screen (both monitors)

SysGet, mon_1, Monitor, 1
SysGet, mon_2, Monitor, 2
MouseGetPos mouse_x,mouse_y

; toggle the mouse to the middle of the other screen

if (mouse_x <= mon_1Right)
{
  new_x := mon_2Left + (mon_2Right - mon_2Left) // 2
  new_y := mon_2Top + (mon_2Bottom - mon_2Top) // 2
}
else
{
  new_x := mon_1Left + (mon_1Right - mon_1Left) // 2
  new_y := mon_1Top + (mon_1Bottom - mon_1Top) // 2
}

MouseMove, %new_x%, %new_y%
Click
return

Esc::ExitApp  ; Exit script with Escape key
2
Mordechai Z Zur