2

我在一个监控电脑各个组件的工作项目中使用 DirectInput8。为了监控操纵杆,我们使用 DirectInput8。通过枚举所有以 DI8DEVCLASS_GAMECTRL 作为类型并以 DIEDFL_ATTACHEDONLY 作为标志的游戏杆来检索数据。最近,我注意到我们出现了多个操纵杆。首先,我查看了我们在重启之间存储组件的 xml 文件。游戏杆有两个条目,Logitech Extreme 3d pro,每个条目都有一个独特的产品指南。我备份了文件并将其删除,从而在我重新启动机器后下次启动应用程序时有效地强制重新扫描机器。我能够遇到同样的问题并注销了 guid,它们每个都不同。该系统仅插入了一个操纵杆,但它通过 USB 集线器插入。集线器是否影响我看到的指南?我也只能让这种情况发生,可能是 5 次尝试中的 1 次。

例子:

操纵杆产品 GUID:3C6A972000000000504944564944 操纵杆实例 GUID:3C6A972097C11E3800144455354

操纵杆产品 GUID:DA83AFB000000000504944564944 操纵杆实例 GUID:DA83AFB0D7B211E2800144455354

4

3 回答 3

1

有一个类似的问题...我刚刚导出了我想跨机器复制 GUID 的 VID/PID 的 DirectInput 注册表设置。

因此,在 regedit 中导航到:

[HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\DirectInput\VID_[Whatever]&PID_[Whatever]\

右键单击,选择导出以创建 .reg 文件,将其移动到您想要的机器并双击。

于 2013-12-12T19:30:14.477 回答
0

这是一个痛苦的发现,但在观察我们的测试人员后,我发现他们正在登录多个用户帐户,并且每个用户返回的 GUID 不同,这就是导致问题的原因,如果更新文档以反映这一点,那就太好了。

于 2014-02-21T00:19:55.487 回答
0

我遇到了与原始海报完全相同的问题。为了澄清他的答案,每个用户的实例 GUID 都不同。这里是 MSDN 文档,它错误地断言 InstanceGUID 在给定的计算机上应该保持不变如果没有来自 Mircosoft 的人参与,我不知道我永远不会知道为什么会这样 - 它是一个错误还是文档不正确。

最重要的是,如果没有解决此问题的方法,您将在多个用户之间为操纵杆进行时间共享键绑定,这就是我的情况。

于 2014-05-07T22:17:49.953 回答