windows - 如何以未弃用的方式访问 Windows 上的操纵杆?

标签 windows joystick xinput

我想编写一个访问操纵杆的 Windows 应用程序。它只是一个非常简单的应用程序,它读取值并将它们发送到服务器,所以我没有使用任何游戏编程框架。但是,我对使用哪个 API 感到困惑。

我查看了 Multimedia Joystick API,但它被描述为已被 DirectInput 取代。所以我查看了 DirectInput,但这也不推荐使用 XInput。 然而,XInput 文档仅讨论了 Xbox360 Controller ,并表示它不支持“旧版 DirectInput 设备”。

Microsoft 是否已将整个 HID 操纵杆使用类型归入垃圾箱并放弃支持他们以支持他们自己的专有 Controller 产品,还是我遗漏了什么?

最佳答案

最常见的解决方案是结合使用 XInput 和 DirectInput,这样您的应用程序就可以正确访问这两种类型的设备。微软甚至提供instructions on how to do this .

请注意,DirectInput 不适用于 Windows 应用商店应用,因此如果您打算通过那里进行分发,那不是一种选择。

像 XBox 360 Controller 这样的 XInput 设备也可以使用 DirectInput,但有一些限制。值得注意的是,左右触发器将映射到同一轴而不是独立的,并且振动效果将不可用。

关于windows - 如何以未弃用的方式访问 Windows 上的操纵杆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41077324/

相关文章:

c++ - en_US.UTF-8 区域设置的 Windows 等效项是什么?

c++ - 链接器说 _IsolationAwareLoadLibrary 未定义 - 有什么想法吗?

c# - 如何更改 .net Web 应用程序中的默认区域性设置?

java - Java 中的虚拟操纵杆

c# - 如何从 Unity 5 中的标准 Assets 添加操纵杆?

windows - 确定打开给定文件扩展名的默认程序 - VBS

macos - 如何在 Mac 上使用 SDL 的操纵杆?

linux - linux/X11中的"Seamless"多用户 session

x11 - 处理/调试 Xorg 服务器模块的最佳方式