我正在设计具有特殊功能的USB键盘。这样的HID设备可以从主机接收哪些信息?
我可以通过USB:
谢谢!
答案 0 :(得分:4)
设备无法从操作系统提供的标准驱动程序获取任何此类信息,因为这将是一个安全问题。 可以接收您自己的驱动程序或应用程序发送的任何信息。有许多方法可以与之通信 - 您的设备可以呈现多个接口(将显示为单独的设备),多个端点或使用控制通道。你肯定需要学习spec,我也发现this tutorial很有帮助。
我做了类似的事情并使用控制通道与Windows应用程序(通过标准Windows驱动程序)交换功能数据。在Windows上,API调用为HidD_SetFeature()
和HidD_GetFeature()
。
在设备方面,我的硬件运行嵌入式Linux,我使用GadgetFS library创建用户模式驱动程序 - 比内核驱动程序更容易调试。
答案 1 :(得分:1)
正如其他人所说,如果您使用普通HID尝试此操作,则会遇到问题。但是,有一个名为USB Rubber Ducky的项目。从他们的描述:
The USB Rubber Ducky isn't your ordinary HID (Human Interface Device).
Coupled with a powerful 60 MHz 32-bit processor and a simple scripting language
USB Rubber Ducky
看起来像一个USB设备并被识别为HID,但是可编程的。您可以创建一个将在屏幕上键入的小脚本,以便您执行所查询的查询。
使用USB Rubber Ducky
,您可以:
从屏幕上的表单中读取数据?的是
找出用户所使用的操作系统?的是
查看是否有错误消息?的是
甚至“知道”屏幕上可视化的内容,即选择了什么程序或者程序是窗口还是全屏?的是
如果您不希望购买此设备,至少它们的固件位于github上,因此它可以为您提供一个起点