【发布时间】:2018-07-18 14:16:09
【问题描述】:
我希望从 C# WPF 应用程序中重现校准过程。网上也有类似的应用,比如DIView:
和DXTweak:
但是,由于要求您为每个轴选择最小值、中间值和最大值,因此该过程很繁琐。
我有自己的操纵杆板,Windows 将其识别为游戏控制器。我可以使用 DirectInput 或任何其他库读取它的值。当使用这两个应用程序之一来校准我的操纵杆时,当我使用 DirectInput 轮询值时,我实际上可以得到结果。绝对有办法通过代码做到这一点。
我的目标是开发一个应用程序来同时校准多个轴。我相信 DirectInput 可以处理这种任务,或者 Windows 注册表将它们存储在某个地方。可悲的是,在 Google 上搜索了几个小时后没有足够的结果(请证明我错了!)。
编辑:
DirectInput API 中有DeviceProperties.GetCalibrationPoints 和DeviceProperties.SetCalibrationPoints 函数,但我不知道如何使用它们。
我尝试像这样获取校准点:MyDevice.GetCalibrationPoints(ParameterHow.ByUsage, MyDevice.DeviceInformation.Usage);,但我想我做错了,因为我得到了 -2147024894 (ERROR_FILE_NOT_FOUND) 异常。
【问题讨论】: