繁体   English   中英

从 C# IntPtr 获取设备信息

[英]Get Device Information from C# IntPtr

背景/免责声明:我目前正在开发一个需要与 Microsoft 的原始输入 API 交互的 C# 项目。 我是一名 C# 开发人员,我对原始输入 API“空间”和相关 API(即 Windows 窗体、user32.dll、Windows 编程)完全陌生。

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

到目前为止做了什么

  1. 通过 EventHandler 委托和 SharpDX API 获得原始输入; 获得了设备的 IntPtr。
  2. 过去3天,用我平庸的搜索能力在网上搜索; 没有发现从 C# IntPtr 获取设备信息的 C# 托管方式(安全上下文)。

注意:虽然代码答案很有帮助,但我在这里不仅仅是为了“抢答然后跑”。 只要可以通过一些 C# 托管的免费库或没有 C#“不安全”上下文来做到这一点; 向我发送指向所述图书馆的文档和图书馆主站点的链接,并附上一些一般指南就足够了。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM