HID 设备可以接收哪些数据?
What data can a HID device receive?
我正在设计具有特殊功能的 USB 键盘。这样的HID设备能从主机接收到什么信息?
我可以通过 USB 连接吗:
- 从屏幕上的表单中读取数据?
- 了解 OS 用户正在使用什么?
- 查看是否有错误消息?
- 甚至 'know' 屏幕上的视觉效果如何,即选择了什么程序或者程序是窗口化还是全屏?
谢谢!
设备无法从操作系统提供的标准驱动程序中获取任何此类信息,因为这会是一个安全问题。它可以 接收您自己的驱动程序或应用程序发送给它的任何信息。与它通信的方式有很多种——您的设备可以呈现多个接口(将显示为单独的设备)、多个端点或使用控制通道。您肯定需要学习 spec, and I also found this tutorial 有帮助。
我做了类似的事情,并使用控制通道与 Windows 应用程序(通过标准 Windows 驱动程序)交换特征数据。在 Windows 上,API 调用是 HidD_SetFeature()
and HidD_GetFeature()
。
在设备方面,我的硬件 运行 嵌入 Linux 并且我使用 GadgetFS library 创建用户模式驱动程序 - 比内核驱动程序更容易调试。
正如其他人所说,如果您使用普通 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
您可以:
从屏幕上的表单中读取数据? 是
找出 OS 用户在看什么? 是
查看是否有错误消息? 是
甚至 'know' 屏幕上的视觉效果如何,即选择了什么程序,或者程序是窗口化还是全屏? 是
如果您不希望购买此设备,至少他们的固件已在 github 上,因此它可以为您提供一个起点
我正在设计具有特殊功能的 USB 键盘。这样的HID设备能从主机接收到什么信息?
我可以通过 USB 连接吗:
- 从屏幕上的表单中读取数据?
- 了解 OS 用户正在使用什么?
- 查看是否有错误消息?
- 甚至 'know' 屏幕上的视觉效果如何,即选择了什么程序或者程序是窗口化还是全屏?
谢谢!
设备无法从操作系统提供的标准驱动程序中获取任何此类信息,因为这会是一个安全问题。它可以 接收您自己的驱动程序或应用程序发送给它的任何信息。与它通信的方式有很多种——您的设备可以呈现多个接口(将显示为单独的设备)、多个端点或使用控制通道。您肯定需要学习 spec, and I also found this tutorial 有帮助。
我做了类似的事情,并使用控制通道与 Windows 应用程序(通过标准 Windows 驱动程序)交换特征数据。在 Windows 上,API 调用是 HidD_SetFeature()
and HidD_GetFeature()
。
在设备方面,我的硬件 运行 嵌入 Linux 并且我使用 GadgetFS library 创建用户模式驱动程序 - 比内核驱动程序更容易调试。
正如其他人所说,如果您使用普通 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
您可以:
从屏幕上的表单中读取数据? 是
找出 OS 用户在看什么? 是
查看是否有错误消息? 是
甚至 'know' 屏幕上的视觉效果如何,即选择了什么程序,或者程序是窗口化还是全屏? 是
如果您不希望购买此设备,至少他们的固件已在 github 上,因此它可以为您提供一个起点