如何以不推荐的方式访问windows上的操纵杆?

如何以不推荐的方式访问windows上的操纵杆?,windows,joystick,xinput,Windows,Joystick,Xinput,我想写一个访问操纵杆的Windows应用程序。它只是一个非常简单的应用程序,读取值并将其发送到服务器,因此我不使用任何游戏编程框架。然而,我对使用哪种API感到困惑 我查看了多媒体操纵杆API,但它被DirectInput所取代。所以我看了DirectInput,但这也不赞成使用XInput。 然而,XInput文档只谈到Xbox360控制器,并表示它不支持“传统的DirectInput设备” 微软是否已经将整个HID操纵杆的使用类型扔进垃圾箱,并放弃支持它们,转而支持它们自己的专有控制器产品,

我想写一个访问操纵杆的Windows应用程序。它只是一个非常简单的应用程序,读取值并将其发送到服务器,因此我不使用任何游戏编程框架。然而,我对使用哪种API感到困惑

我查看了多媒体操纵杆API,但它被DirectInput所取代。所以我看了DirectInput,但这也不赞成使用XInput。 然而,XInput文档只谈到Xbox360控制器,并表示它不支持“传统的DirectInput设备”


微软是否已经将整个HID操纵杆的使用类型扔进垃圾箱,并放弃支持它们,转而支持它们自己的专有控制器产品,还是我遗漏了什么?

最常见的解决方案是结合使用XInput和DirectInput,以便您的应用程序能够正确访问这两种类型的设备。微软甚至提供

请注意,DirectInput不适用于Windows应用商店应用程序,因此,如果您打算通过Windows应用商店应用程序进行分发,则这不是一个选项


Xbox360控制器等XInput设备也可以使用DirectInput,但有一些限制。值得注意的是,左侧和右侧触发器将映射到同一个轴,而不是独立的轴,振动效果将不可用。

我在支持DInput和XInput模式的Windows上使用Logitech F710 gamepad(有一个物理开关)。XInput不仅限于Microsoft的产品。Microsoft已将其大多数(如果不是全部)输入堆栈实现标记为“已弃用”,但没有明确的替换语句。我仍然用它来处理操纵杆输入。DirectInput仍然受到积极支持,并且在可预见的将来也将受到支持。或者,您可能需要进行评估,看看这是否也可以用于操纵杆输入。没有DirectX的所有COM基础设施,设置起来更容易一些。令人遗憾的是,力反馈(除了“隆隆声”)被降级为“遗留”