首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持多达11个鼠标按钮?

支持多达11个鼠标按钮?
EN

Stack Overflow用户
提问于 2016-04-06 22:22:25
回答 2查看 1.2K关注 0票数 0

我正在编写一个用于在Windows上检测鼠标和键盘上的额外输入的概念的小证明,它是否可能,以及如何从Windows API中的大量按钮中检测输入?据我所读到,只有5个按钮的支持,但许多鼠标有更多的按钮,我的问题甚至可以用Windows,它是否有可能在Windows的约束下?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-06 22:38:44

您可以使用原始输入API直接从鼠标/键盘驱动程序接收WM_INPUT消息。有5个标准鼠标按钮(左、中、右、x1和x2)的结构字段。除了标准按钮之外,附加按钮还由特定于供应商的数据处理,您必须根据需要对这些数据进行编码。API可以让您访问原始值,但是您必须参考供应商驱动程序文档来解释它们。有时额外的按钮实际上被报告为键盘输入而不是鼠标输入。

或者,尝试使用DirectInput APIDirectInput器件交互以接收鼠标数据键盘数据

或者,您可以使用XInput API,它是DirectInput的继承者。然而,XInput比DirectInput更受限制,因为它主要是为与Xbox 360控制器交互而设计的,而DirectInput是为与任何控制器交互而设计的。有关更多详细信息,请参阅XInput和DirectInput

票数 2
EN

Stack Overflow用户

发布于 2016-04-08 05:01:55

非常简单:使用GetKeyState

代码语言:javascript
复制
SHORT WINAPI GetKeyState(
  _In_ int nVirtKey
);

下一个是逻辑:

  1. 要求用户不要按按钮
  2. 为所有按钮循环GetKeyState 0-255
  3. 下拉按下按钮状态(一些虚拟键可以按下,即使没有按下,也不知道原因)
  4. 现在启动键,监视线程中的rest键代码,并将它们保存到任何结构中(循环之间的暂停为25 is就足够了)
  5. 要求用户按下按钮
  6. 从键监视器数组中,您将看到用户按下的任意按钮。

直接输入和所有其他输入更适用于其他用户输入设备。对于键盘和鼠标- GetKeyState是最好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36463375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档