usb - 如何检测使用 USB HID API 推送的游戏 handle 触发器?

标签 usb hid xbox gamepad xinput

当按下游戏 handle 按钮并检索游戏 handle 状态时,我使用 RawInput + Windows USB HID API 接收 WM_INPUT 消息。

有一个问题:两个触发器在同一轴上工作,这意味着您无法确定是否同时按下了两个触发器。启动 OS Windows 游戏 handle 测试应用程序时,我观察到相同的行为。但我需要区分这两个按下的按钮。

请注意,XInput 可以按需要工作,它为您提供了两个触发器的两个轴,但我不想使用 XInput,因为它仅适用于 XBox Controller ,并且世界上有许多非 xbox Controller 。

我想一定有一种方法可以通过 USB HID API 读取两个轴,但直到现在我找不到它。你解决了这个问题吗?

游戏 handle :使用 XBox 360(但应支持任何其他 handle )。

操作系统:Windows 7。

IDE:Visual Studio 2010。

语言:C++

最佳答案

如果您确实需要通过 HID API 读取 XInput 数据并独立获取触发轴...
xusb22.sys驱动程序选项:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xusb22\Parameters]
"GamepadTriggerUsage"=dword:00003532
"GamepadStickUsage"=dword:31303433
让它在 Rx/Ry(0x33/0x34 使用)上报告 LT/RT,在 Z/Rz(0x32/0x35 使用)HID 轴上报告 RStick - 就像 DualShock4:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xusb22\Parameters]
"GamepadTriggerUsage"=dword:00003334
"GamepadStickUsage"=dword:31303532
但是仍然 - 没有任何方法可以通过其 HID 接口(interface)将振动发送到 XInput Controller 。
PS:还有其他选项存在。见 C:\Windows\INF\xusb22.inf文件。
XInput HID Triggers

关于usb - 如何检测使用 USB HID API 推送的游戏 handle 触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764857/

相关文章:

python - 如何在Python中记录xbox/游戏 handle Controller 的状态?

windows - Xbox One Kinect 和 JavaScript

embedded - 开发套件建议

macos - 通过软件在 OSX 上模拟 USB 插入

linux - USB端口在Gentoo Linux中不起作用

macos - 如何在 Mac OSX 中仅使用具有特定 HID 的键盘上的按键事件?

css - UWP、WinJS 元素、scrollview 适用于本地计算机但不适用于 XBOX

Linux USB驱动probe()问题

linux - Pamusb-agent 说已解锁但屏幕仍处于锁定状态

c - IOHID : add trackpad to matching dictionary