1、SharpDX下载
VS下载:
项目右键——管理nuget程序包——浏览——搜索SharpDX——下载
搜索SharpDX.DirectInput——下载
我是在这里两个都下了,应该是自动识别你当前的.Net Framework版本,有的.Net Framework版本可能没有
貌似官网http://sharpdx.org/
2、using
如果从nuget下载的,已经添加到引用了,不用手动using
3、环境
vs2015,
默认目标框架是.NET Framework 4.5
4、开发
简单做了个例子,能读取到手柄状态,没有测试多个手柄的情况
SharpDX.DirectInput.Joystick curJoystick;
private void button1_Click(object sender, EventArgs e) { var dirInput = new SharpDX.DirectInput.DirectInput(); var typeJoystick = SharpDX.DirectInput.DeviceType.Joystick; var allDevices = dirInput.GetDevices(); bool isGetJoystick = false; foreach (var item in allDevices) { if (typeJoystick == item.Type) { curJoystick = new SharpDX.DirectInput.Joystick(dirInput, item.InstanceGuid); curJoystick.Acquire(); isGetJoystick = true; Thread t1 = new Thread(joyListening); t1.IsBackground = true; t1.Start(); } } if (!isGetJoystick) { MessageBox.Show("没有插入手柄"); } }
private void joyListening() { MessageBox.Show("监听到手柄"); while (true) { var joys = curJoystick.GetCurrentState(); SetMessage(textBox1, joys.ToString()); Thread.Sleep(100); } }
5 键盘状态读取
if (SharpDX.DirectInput.DeviceType.Keyboard == item.Type) { var curKeyboard = new SharpDX.DirectInput.Keyboard(dirInput); curKeyboard.Acquire(); var curKeyboardState = curKeyboard.GetCurrentState(); var curPressedKeys = curKeyboardState.PressedKeys; }
6