我的情况是我有多个来自同一制造商的操纵杆输入设备。这个想法是您设置它们一次,然后任何用户都可以登录并玩,而无需再次设置它们。问题是如何唯一标识每个棒,以便在运行时将每个棒与正确保存的配置相关联。我正在使用 DirectInput,因为这些是操纵杆,而不是游戏手柄。
问题是,尽管此处以及其他 MSDN 页面声明了什么,但 InstanceGUID 仅对每个用户是唯一的,而不是每台机器!至少这是我所看到的,这似乎被这里的另一张海报所证实。理想情况下,我希望新用户能够登录并使用现有设置运行,但我看不到任何方法可以将正确的操纵杆与正确的保存按钮映射相关联,而没有可靠的不会更改的 GUID(并且这对于两个棒来说都不一样,比如产品 GUID)。
如果有帮助的话,所有这些摇杆都是 USB 游戏杆。
也许有一种方法可以可靠地枚举这些棍子?但是如果不了解如何扫描 USB 端口以查找操纵杆的底层架构,我不确定我是否总是可以假设“第一个”棒实际上是每个用户的第一个棒,或者我是否拔下棒并将其重新插入在,甚至到同一个端口。
更新: 本文包含 InstanceId 是每台计算机而不是每用户的声明。