0

我目前正在编写一个.Net DirectInput 包装 DLL,以允许基于事件报告来自其他语言的棒输入(我正在使用 AutoHotkey)。
我目前使用 SharpDX 读取棒数据,但 SharpDX 似乎只报告棒报告轴数,而不是棒报告轴。
例如,一根摇杆完全有可能有 7 个轴,但没有 X 轴(您可以通过安装 vJoy 并配置它具有哪些轴来看到这一点 - 在 vJoy 配置实用程序中,取消勾选 X 轴。在 joy.cpl 中注意X 轴消失了)。
通过 SharpDX(使用 eg SharpDX.DirectInput.Joystick.Capabilities.AxeCount)读取棒帽,似乎无法判断缺少的轴是 X。
底层 DirectInput API 是否能够表示此信息,还是我必须使用 RawInput 之类的东西才能获取此信息?

4

1 回答 1

1

所以我为自己解决了这个问题。

使用 SharpDX,您可以使用Joystick.GetObjectPropertiesByName("X")其中“X”是轴的名称。您可以调用ToString()aJoystickOffset来获取轴的名称。
如果您在一个try块中执行此操作,那么如果它击中捕获,则该轴不存在于该棒上。

于 2017-03-16T12:13:05.860 回答