在 Windows 10 中将鼠标光标从一个屏幕跳转到另一个屏幕的快捷方式

在 Windows 10 中将鼠标光标从一个屏幕跳转到另一个屏幕的快捷方式

我的 Windows 10 机器上有两个屏幕,我发现将鼠标光标从一个屏幕移到另一个屏幕很麻烦。我知道的唯一方法是将鼠标光标从一个屏幕拖到另一个屏幕,但这需要移动一段距离并穿过未阻挡的角落。

是否有快捷方式可以让我的鼠标光标从一个屏幕跳转到另一个屏幕?

答案1

“将鼠标移动到当前具有键盘焦点的窗口”的一种解决方案是以下按键顺序,不需要安装任何宏或热键软件(自 Windows 1.0 以来就已存在):

[alt]+[space] 
[M]
[any arrow key] 

然后您可以移动鼠标,窗口将处于拖动模式 - 按下然后释放鼠标左键以退出拖动模式。

这是一个有点麻烦的解决方案,但是如果您真的找不到鼠标,由于显示器位置奇怪,它会为您恢复它。

答案2

有很多来源可以找到 Windows 10 快捷方式。例如,Gizmodo 的 Windows 10 键盘快捷键终极指南 包括了:

Windows Key++ ShiftLeftRight)— 将窗口移动到下一个显示器。


如果你的问题是移动鼠标而不是窗口,你需要一个工具,例如 自动热键

下面是一个脚本(未经测试),假设你的两个显示器大小相同,并使用Ctrl+Space来实现:

^Space::
  CoordMode, Mouse, Screen ; mouse coordinates relative to the screen
  MouseGetPos, MouseX, MouseY
  if (MouseX > A_ScreenWidth) {
    MouseMove, -A_ScreenWidth, 0, 0, R
  } else {
    MouseMove, A_ScreenWidth, 0, 0, R
  }
return

答案3

我修改了 Arnaud Weil 的脚本,使其适用于我的设置。这是我第一次使用 AutoHotKey。

我的 #1 显示器的 Y 坐标为负,而 #2 显示器的 Y 坐标为正。因此,我检查的是 MouseY 而不是 MouseX。我使用 AutoHotKey 中的调试功能来确定每个屏幕中间附近的坐标,然后简单地将它们硬编码到脚本中。

我的显示器设置如下: 多显示器排列,角落处交叉点较小

这是代码。我的“what”和“huh”变量主要是为了确定if调试输出中正在执行的哪个分支。无论哪个变量有值,那就是我所在的分支。

^Space::
  CoordMode, Mouse, Screen ; mouse coordinates relative to the screen
  MouseGetPos, MouseX, MouseY
  if (MouseY > 0) { ; Mouse is on monitor #2
    ;what = %A_ScreenWidth% 
    ;ListVars ; uncomment for debugging
    ;Pause ; uncomment for debugging
    MouseMove, -1071, -753, 0
  } else { ; Mouse is on monitor #1
    ;huh = %A_ScreenWidth%
    ;ListVars ; uncomment for debugging
    ;Pause ; uncomment for debugging
    MouseMove, 1286, 670, 0
  }
return

可以改进此方法,使用更通用的方法确定鼠标位于哪个屏幕,并以编程方式确定每个屏幕的中心坐标。但这对我来说有效。

编辑:对于新用户亚当斯,他在下面的回答中给我发消息,我在评论中建议写一个新问题。(如果这对您有帮助,请点赞,或者提出一个新问题)

他询问如何处理 3 个屏幕。在我的代码中,我只是询问“我是否在屏幕 1 上”,然后,如果是,则将鼠标移动到屏幕 2 的中间,否则将其移动到屏幕 1 的中间。这在 3 个屏幕上不起作用。

对他来说,该if部分可能看起来更像这样:

  if (MouseY > 0 and MouseY <= 1920) { ; assuming Monitor 1 is 1920 pixels wide
    MouseMove, 2880, 540, 0 ; move to middle of Monitor 2, center screen
  } else if (MouseY > 1920 or MouseY <= 3840 ) { ; Mouse is on monitor #2
    MouseMove, 4800, 540, 0 ; move to middle of monitor 3
  } else { ; Mouse is on monitor #3
    MouseMove, 960, 540 ; move mouse to middle of monitor 1
  }

上面的代码假设您最左边的显示器从 0, 0 开始。但是,就我而言,我的左显示器坐标为负,而右显示器坐标为正。您可能遇到类似的情况。我的第一个代码片段中的调试代码是我用于确定设置中的坐标的代码。

答案4

我也感到了同样的感受,而且我发现令人沮丧光标不再局限于显示屏的两侧。例如,尝试到达“关闭窗口“按钮需要精确的肌肉控制才能不超出边缘。而之前,你可以简单地再次撞上屏幕的顶部和右侧边框,然后砸碎那个窗口。

所以我创建了一个自动热键我加班改进的脚本,今天我对这个解决方案非常满意,所以我想它可以帮助一些 Windows 用户:

  • 通过菜单快速计算两个显示器的延伸,您可以选择任意最大化每个显示器的窗口。
  • 然后按下按钮就可以确定光标当前位于哪个显示屏上并将其移动到另一个显示屏上。
  • 它保存每个显示器的最后位置并将其移回该位置。
  • 为了避免每次存储时重新进行校准,显示延伸至%UserProfile%\display_shifter.ini
  • 突出显示光标的到达位置,以便于发现

更多详细信息和脚本文件可在要旨我创建: https://gist.github.com/codekoriko/f9f2738afd253fe70c7ebc0843df3c91

注意:更新了要点网址

相关内容