全局捕获鼠标输入和阻止事件 C++

capture mouse input and block events globally c++

提问人:Adrian Wierzbicki 提问时间:10/29/2023 更新时间:10/29/2023 访问量:46

问:

我正在尝试编写简单的 c++ Windows 应用程序,该应用程序将全局捕获鼠标事件,最好的方法是将指针保持在相同的坐标中,并防止它单击,直到我按下键盘上的释放键。我将每个像素移动发送到串行。某种通过鼠标到串行的传递。 到目前为止只使用了iostream,windows.h。

如何捕获鼠标事件/输入(移动、点击),即使我的 C++ 控制台应用程序已最小化并且用户在顶部有其他应用程序?

我尝试了CreateWindowW(windows.h)不可见和全屏使用WindowProc和WM_MOUSEMOVE来捕获鼠标移动,但是一旦我到达我的窗口最大高度和宽度,它就会捕获0像素移动,但我的目标是捕获并将任何移动/键事件从鼠标发送到串行。

C++ Windows 事件 输入 鼠标

评论

1赞 Remy Lebeau 10/29/2023
看看 提供的鼠标钩子SetWindowsHookEx()
1赞 JaMiT 10/29/2023
“简单的 C++ Windows 应用程序,它将 [X] 全局” -- 你的功能目标与“简单”相矛盾。
0赞 Adrian Wierzbicki 10/29/2023
我现在尝试使用带有 WH_MOUSE_LL 的 SetWindowsHookEx 来锁定和捕获鼠标按钮,第二个 SetWindowsHookEx 仅用于锁定鼠标移动,以及带有 CreateWindowEx 和 TargetWindowProc 的 RawInput Api 来捕获每个 mose 移动。这似乎有效,但是也许我可以让它更简单?我遇到了一个问题,当我将捕获的事件发送到串行臂时,当它应该移动 x=1 y=0 时,它会移动指针 x=0 y=1 或点击根本不起作用。

答: 暂无答案