如何在Windows下捕获Logitech USB游戏手柄的HID十六进制按键码
适配Logitech USB手柄获取对应按键十六进制码的简便方法
方法1:Windows自带工具+轻量HID监控工具结合
- 打开游戏控制器设置:按下Win+R输入
joy.cpl,找到你的Logitech手柄,点击「属性」进入「测试」标签页。 - 用
HIDExplorer(或同类轻量HID工具)锁定目标手柄的设备ID,设置只捕获该设备的输入数据包。 - 逐个按下手柄按键、拨动方向键,每完成一个动作,记录工具输出的固定长度十六进制数据包——对比你之前的10组码,提取数据包中对应位置的变化字节,排除固定不变的冗余字节即可。
方法2:极简Python脚本定向读取
- 安装
pywinusb库:打开命令提示符执行pip install pywinusb。 - 运行以下脚本(需替换手柄的VID和PID,可从设备管理器「硬件ID」中获取):
import pywinusb.hid as hid def log_input(data): # 提取前10个有效字节(跳过可能的报告ID,可根据实际调整) if len(data) >= 10: hex_codes = ','.join([f"0x{byte:02X}" for byte in data[1:11]]) print(f"动作对应码: {hex_codes}") # 替换为你的Logitech手柄VID和PID target_vid = 0x046D target_pid = 0xC216 devices = hid.HidDeviceFilter(vendor_id=target_vid, product_id=target_pid).get_devices() if devices: device = devices[0] device.open() device.set_raw_data_handler(log_input) print("监听中,按Ctrl+C退出...") try: while True: pass except KeyboardInterrupt: device.close() else: print("未找到目标手柄")
- 操作手柄的每个按键和方向,脚本会直接输出对应动作的十六进制码组,按需记录即可。
关键提示
- 先确认手柄的输入报告长度:通过HID工具查看手柄的报告描述符,确保提取的字节数和你之前的10组码对应。
- 过滤固定字节:对比不同动作的数据包,找出每次操作都会变化的字节位置,这些就是你需要的按键/方向对应码。
内容的提问来源于stack exchange,提问作者Retro Tec
相关产品推荐
相关产品推荐

