YStudio Y++

HID类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(旁路插件 supportlib.hid)。路径:支持库 → 扩展类库 → HID类。

用户态枚举 HID 设备并读写 输入/输出/特征报表。动态加载系统 hid.dll,免费。

类型名必须写完整「HID类」。

硬约束

  1. 类型名必须写「HID类」。
  2. 只打开你指定的设备路径/索引;不做全局键盘钩子、不做后台按键记录(避免杀毒误报与隐私问题)。
  3. 键鼠等系统占用设备可能打不开或读不到;游戏手柄、扫码枪 HID、自定义 HID 更合适。
  4. 报表首字节通常为 Report ID,长度见 取输入/输出/特征报表长度()。
  5. Windows 7 及以上(推荐 10/11)。

快速开始

HID类 h
如果 (!h.枚举()) {
    输出(h.取错误())
    返回 ()
}
计次循环 (整数 i = 0; i < h.取设备数(); i++) {
    输出(到文本(h.取厂商ID(i)) + ":" + 到文本(h.取产品ID(i)) + " " + h.取产品名(i))
}

' 按用量过滤示例:游戏手柄常见 UsagePage=0x01 Usage=0x05
' h.枚举("", 1, 5)

方法一览

  • 逻辑 枚举([文本 硬件ID过滤], [整数 用量页=0], [整数 用量=0])
  • 整数 取设备数() / 文本 取设备路径|取产品名|取厂商名|取硬件ID(索引)
  • 整数 取厂商ID|取产品ID|取用量页|取用量(索引)
  • 逻辑 打开(文本 路径) / 逻辑 打开索引(整数 索引) / 关闭()
  • 整数 取输入报表长度() / 取输出报表长度() / 取特征报表长度()
  • 字节集 读报表([超时]) / 逻辑 写报表(字节集)
  • 字节集 取特征报表([报表ID], [长度]) / 逻辑 置特征报表(字节集)
  • 文本 取错误()

选型

需求 建议
COM 口 串口类
WinUSB 批量/控制 WinUSB类
SetupAPI + DeviceIoControl 设备类
HID 报表 HID类(本文)

相关

WinUSB类 · 设备类 · 串口类 · 字节集