如何从 USB HID 设备读取输入?

Posted

技术标签:

【中文标题】如何从 USB HID 设备读取输入?【英文标题】:How do I read input from a USB HID device? 【发布时间】:2011-04-08 23:23:45 【问题描述】:

我正在制作一个在销售点的后台运行的应用程序,以读取来自 USB 扫描仪的输入。 如何从 C# 获取扫描仪的输入? 我可以区分扫描仪和 USB 键盘吗? (扫描仪是 HID 设备)

【问题讨论】:

【参考方案1】:

在 CodeProject 上使用“原始输入”实现之前,我成功地做到了这一点:

Raw Input

它允许您接收输入(如果它模仿“键盘”,则按下了哪些“键”)以及区分它来自哪个设备。

【讨论】:

看起来不错。但是,即使它拾取了我的 2 个 HID 设备,它似乎也没有触发 _KeyPressed 事件。 得到它的工作,在 64 位 Windows 上在 32 位下编译它。再次感谢。 我正在使用 RawInput 从特定键盘获取按键,并且工作正常,除了它仍然发送原始按键。因此,如果我将 Backspace 映射为 Control-C,然后按 Backspace,它首先执行退格,然后执行 Control-C。我试图让它(显然)只做Control-C(宏)而不是Backspace(原始按键)。关于如何做到这一点的任何想法?我听说它需要键盘挂钩来取消消息,原始输入来确定它是否来自正确的键盘,以及两者之间的通信系统。 类似linux的解决方案是可能的? 此项目在 LGPL v3 许可下;(

以上是关于如何从 USB HID 设备读取输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何定义STM32 USB HID设备缓冲区地址?请求帮助

如何从Windows 7中的非HID设备捕获USB中断?

如何用Python读取USB操纵杆的输入

如何与 Windows 上的 USB-HID 设备通信?

RK3399平台开发系列讲解(高速设备驱动篇)6.61USB如何模拟HID设备

usb蓝牙转hid