C# 使用DirectX获取摇杆外设状态
要做使用摇杆来代替键盘控制某个状态的项目,了解了一下目前主流的两种获取方式,这里记录其中一种,以备以后查询;
第一种使用 winmm.dll
来获取摇杆状态
核心代码是 joyGetPosEx:
/// <summary>
/// 获取操纵杆位置和按钮状态
/// </summary>
/// <param name="uJoyID">只有一个手柄时传入0</param>
/// <param name="pji">JOYINFOEX 结构体</param>
/// <returns>0则是获取到了摇杆</returns>
[DllImport("winmm.dll")]
public static extern int joyGetPosEx(int uJoyID, ref JOYINFOEX pji);
第二种使用Microsoft.DirectX
来获取摇杆状态
本文主要讲使用DirectX遇到的一些坑
1.导入对应的dll库
一共需要两个库
Microsoft.DirectX.dll
Microsoft.DirectX.DirectInput.dll
这个库放到本文的最后,需要的可以下载