【发布时间】:2014-01-17 04:26:14
【问题描述】:
我已经对此进行了大量研究。有一些程序,如 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
}
【问题讨论】:
-
我将重新表述这个问题。我实际上是在寻找更多关于如何使用 C++ 处理鼠标的信息。也就是说,使用任何有助于处理 Windows 上的鼠标输入的 API。重新阅读我的问题,我发现这不是这样的。
-
您需要 SetWindowsHookEx() 来设置一个低级鼠标挂钩,以便您可以看到它移动。和 EnumDisplayDevices() 来查找监视器。
-
不要使用 SeWindowHookEx()。那是旧的和过时的。如果您想使窗口屈服,请编写一个低级挂钩,并在其中设置一个断点。您应该处理原始输入。 SendInput、注册输入等。这使您的应用程序可以控制整个桌面的输入。