使用C++在Windows上捕获鼠标HID数据包?

axzmvihb  于 2023-04-01  发布在  Windows
关注(0)|答案(1)|浏览(364)

我想抛弃雷蛇Synapse,因为它会白白占用600 MB的RAM。我只想用我的宏来处理我的雷蛇Deathadder上的两个额外按键。我已经成功地用C++ HID API捕获了我的Corsair K95键盘的HID数据包,并执行了我的宏,我终于可以跟iCUE说再见了。但是我不能打开鼠标作为HID设备。一切都应该配置正确,VID/PID,UsagePage和Usage也是。但有趣的是,wireshark能够捕获鼠标,对我来说,即使我尝试使用管理员权限打开它,它也不会。有人知道我应该怎么做吗?
我试过hidapitester应用程序,它是HIDAPI C++库的一部分,它会自动关闭设备,不接收任何东西。如果不能以这种方式解决它,我应该使用哪种方法来捕获数据包?
谢谢大家。

gjmwrych

gjmwrych1#

你不能打开键盘和鼠标隐藏设备句柄的安全原因(所以你不能写一个键盘记录等)。它在Windows中的设计。
https://learn.microsoft.com/en-us/windows-hardware/drivers/hid/top-level-collections-opened-by-windows-for-system-use
官方的解决方法是编写键盘/鼠标过滤器驱动程序。https://learn.microsoft.com/en-us/samples/microsoft/windows-driver-samples/mouse-input-wdf-filter-driver-moufiltr/

相关问题