我正在编写一个小概念,用于检测Windows上鼠标和键盘的额外输入,是否可以,如何检测Windows API中大量按钮的输入?根据我的阅读,只有5个按钮的支持,但许多鼠标有更多的按钮,我的问题甚至可以使用Windows API,是否可以在Windows的限制范围内?
答案 0 :(得分:2)
您可以使用Raw Input API直接从鼠标/键盘驱动程序接收WM_INPUT
消息。 5个标准鼠标按钮(左,中,右,x1和x2)有结构字段。除标准按钮外,其他按钮由特定于供应商的数据处理,您必须根据需要对其进行编码。 API可以让您访问原始值,但您必须参考供应商驱动程序文档以了解如何解释它们。有时额外的按钮实际上被报告为键盘输入而不是鼠标输入。
或者,尝试使用DirectInput API与DirectInput devices互动,以接收Mouse Data和Keyboard Data。
或者,您可以使用XInput API,它是DirectInput的后继者。但是,XInput比DirectInput更受限制,因为它主要用于与Xbox 360控制器交互,而DirectInput旨在与任何控制器交互。有关详细信息,请参阅XInput and DirectInput。
答案 1 :(得分:0)
非常简单:使用GetKeyState
SHORT WINAPI GetKeyState(
_In_ int nVirtKey
);
逻辑是下一个:
GetKeyState
直接输入和所有其他输入更适用于其他用户输入设备。对于键盘和鼠标 - GetKeyState
最好。