使用sharpDX directinput找不到操纵杆guid

本文关键字:操纵杆 guid 找不到 directinput sharpDX 使用 | 更新日期: 2023-09-27 18:23:46

我正在尝试为我正在创建的游戏使用ps3控制器。我将sharpDX.DirectInput扩展下载到我的visual studio XNA解决方案中,并使用了Valdemar在用C#.NET从操纵杆获取输入中的答案中看似简单的代码。我已经将问题缩小到他找不到控制器的guid,也找不到其他USB连接设备(如键盘)的guid。它确实适用于我笔记本电脑的集成键盘。这是我的代码:

directInput = new DirectInput();
// Find a Joystick Guid
foreach (var deviceInstance in directInput.GetDevices(DeviceType.Gamepad, DeviceEnumerationFlags.AllDevices))
guid = deviceInstance.InstanceGuid;
//create joystick
if (guid!=Guid.Empty)
    controller = new Joystick(directInput, guid);

问题是控制器保持为null,这意味着guid保持为空,也意味着GetDevices方法找不到游戏板。这很奇怪,因为该控制器在Windows7中完美工作,并且在设备管理器中可以作为HID和windows类的Microsoft通用控制器进行查看。

顺便说一句,我在使用Microsoft.DirectX.directInput.时遇到了同样的问题

感谢阅读:)

使用sharpDX directinput找不到操纵杆guid

一个可能的解决方案是将DeviceType.Gamepad更改为DeviceType.Gloystick

我仍然不知道为什么它不起作用。但我尝试了更好的方法。在youtube上的教程中,我安装了一个驱动程序,将DS3控制器"转换"为xbox控制器。换句话说,windows现在认为连接了一个xbox控制器。

现在我可以使用xna库的GamePad类,它是为xbox360控制器设计的。

http://steamcommunity.com/app/258970/discussions/0/613937306592303709/?l=dutch阅读此链接的评论,了解更多更新的驱动程序。