从C#IntPtr

时间:2016-10-14 16:15:19

标签: c# raw-input

背景/声明: 我目前正在开发一个需要与Microsoft的Raw Input API进行交互的C#项目。我是C#开发人员,而且我对Raw Input API' space'全新。一般来说,它是相关API的新手(即Windows Forms,user32.dll,Windows Programming)。

问题: 由于我的背景,我更喜欢通过C#托管包装库使用Raw Input API;我选择了SharpDX,但我对其他C#解决方案持开放态度。 我已经获得了原始输入,捕获了键盘事件和代表键盘设备的IntPtr。有没有办法可以使用此IntPtr参考在设备上找到更多信息(例如Guid,产品名称,设备名称等)?

到目前为止已完成的工作

  1. 通过EventHandler委托和SharpDX API获得原始输入;得到了一个IntPtr到设备。
  2. 在过去的3天里,用平庸的搜索技巧搜索了互联网;没有找到C#managed方式(安全上下文)来从C#IntPtr获取设备信息。
  3. 注意:虽然代码回答很有帮助,但我不仅仅是为了抓住回答并运行"。只要它可以通过一些C#管理的免费库或没有C#“不安全”来实现这一点。上下文;向我发送指向图书馆文档和图书馆主站点的链接,并提供一些通用指南即可。

1 个答案:

答案 0 :(得分:1)

理论上,是的,指针应该是对输入设备句柄的引用,因此您应该能够调用GetRawInputDeviceInfo来获取所需的信息。

您必须自己导入此外部函数调用(from KMoussa's comment),或者在您选择的C#托管包装器中导入。