多显示器环境中的鼠标换行

Mouse Wrapping in Multi-Monitor Environments

本文关键字:鼠标 换行 显示器 环境      更新时间:2023-10-16

我对此做了相当多的研究。有一些程序,如Mousinity,允许"鼠标包装"。如果您通过另一个术语知道它,那就是鼠标指针离开屏幕的一侧并出现在屏幕的另一侧时。

但是,所有这样做的程序都未能在其功能列表中包含一个关键元素:多显示器设置。我厌倦了下载一个完全陌生的软件,只是让它无法与我的设置一起使用。

这个问题的下落和肮脏是这样的:

有没有办法通过某种 Windows 的 API 调用来控制鼠标指针的行为?编辑:更具体地说,API如何处理多个监视器?坐标平面的原点在哪里?

虽然我知道它会复杂得多,但这是我尝试做的伪代码:

if (mouse_position == side_of_screen_of_monitor1 && Mouse_is_being_moved off screen)
{    
    mouse_position == opposite_side_of_screen_of_monitor2
}

原点是主显示器的左上角。如果将显示器放置在主显示器的左侧,则该显示器上的 x 坐标将为负数。如果监视器高于或部分高于主监视器,则该区域的 y 坐标将为负。

  • http://msdn.microsoft.com/en-us/library/windows/desktop/dd145136(v=vs.85).aspx

GetSystemMetrics 还具有仅引用多监视器系统的常量。SM_XVIRTUALSCREEN和SM_YVIRTUALSCREEN识别虚拟屏幕的左上角,SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN是虚拟屏幕的垂直和水平测量

欲了解更多信息,请参阅此处:

  • http://msdn.microsoft.com/en-us/library/windows/desktop/dd162729(v=vs.85).aspx

对于您的任务,我认为您可能只需要考虑虚拟屏幕坐标。