如何将 xbox 360 控制器连接到桌面应用程序(C#,Windows10)

How to connect an xbox360 controller to a desktop app (C#, Windows 10)

我想编写一个简单的应用程序来接受来自 Xbox 360 控制器的输入。我正在用 C# 开发,我当前的开发环境是一台 windows 10 台机器。

我尝试安装 XNA studio 4.0,但收到系统通知说它不受支持。当我点击通知以获取更多信息时,我被重定向到一个开始 Windows Live Gaming 安装程序下载的网页。

这似乎排除了 XInput。

我认为我的替代方案是使用 Windows.Gaming.Input 命名空间,但它似乎仅限于 Metro 应用程序。

我不知道我的其他选择是什么。

我要使用的正确库是什么,我从哪里下载它?

XINPUT 将使用当前 Windows 更新的驱动程序读取 Xbox One 控制器,但您将无法使用 API 访问 'impulse trigger motors'。对于 C# 用法,请查看 SharpDX or SlimDX.

您可以在包括 Windows.Gaming.Input 在内的桌面应用程序中使用 Windows 运行时 APIs。关键是您必须使用 Windows::Foundation::Initialize.

初始化 WinRT

参见 DirectX Tool Kit: Now with GamePads. If you were writing in C++, I'd also recommend looking at the DirectX Tool Kit GamePad class。