从C#IntPtr获取设备信息

本文关键字:信息 获取 C#IntPtr | 更新日期: 2023-09-27 18:13:03

背景/免责声明:我目前正在做一个C#项目,该项目需要与微软的RawInput API进行交互。我是一名C#开发人员,我对Raw Input API"空间"和相关API(即Windows窗体、user32.dll、Windows编程(完全陌生。

问题:由于我的背景,我更喜欢通过C#管理的包装器库使用RawInput API;我选择了SharpDX,但我对其他C#解决方案持开放态度。我已经获得了工作的原始输入,捕获了键盘事件和表示键盘设备的IntPtr。有没有一种方法可以通过此IntPtr参考查找有关设备的更多信息(如Guid、产品名称、设备名称等(?

到目前为止做了什么

  1. 通过EventHandler委托和SharpDX API使原始输入工作;获得了设备的IntPtr
  2. 在过去的3天里,我用自己平庸的搜索技巧在互联网上搜索;找不到从C#IntPtr获取设备信息的C#托管方式(安全上下文(

注意:虽然代码答案很有帮助,但我来这里并不是为了"获取答案并运行"。只要可以通过一些C#管理的免费库或在没有C#"不安全"上下文的情况下做到这一点;向我发送上述图书馆的文档链接和图书馆的主要网站以及一些通用指南就足够了。

从C#IntPtr获取设备信息

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

您必须自己导入这个外部函数调用(从KMoussa的注释(,或者在您选择的C#托管包装器中导入。