You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

USB设备使用检测与记录技术问询

USB设备使用检测与记录技术问询

嘿,这个需求完全能实现!我之前帮朋友处理过类似的扫码器被识别成键盘的区分问题,给你几个实用的方案,分不同系统说:

Windows平台方案

  • 用Raw Input API做自定义监听
    这是Windows原生的底层API,能直接获取每个输入事件对应的设备唯一标识(比如设备ID、厂商/产品ID、设备名称)。你可以用Python搭配pywin32库写个轻量脚本,或者用C#快速开发小工具:
    1. 先通过设备管理器找到扫码器的硬件信息(比如VID/PID),和主键盘做区分;
    2. 监听全局输入事件,每捕获到按键时先判断来源设备;
    3. 把时间戳、设备标识、输入内容一起写入日志文件(比如input_log.txt)。
  • AutoHotkey脚本快速实现
    如果你不想写复杂代码,AutoHotkey是个好选择。它支持获取输入设备的ID,你可以写个简单脚本:
    #Persistent
    SetTimer, CheckInput, 100
    return
    
    CheckInput:
    Input, key, V L1
    if (A_InputDevice = "你的扫码器设备名称") {
        FileAppend, %A_Now% | 扫码器 | %key%`n, input_log.txt
    } else {
        FileAppend, %A_Now% | 主键盘 | %key%`n, input_log.txt
    }
    return
    
    记得先通过AHK的ListInputDevices命令查看并替换成你的扫码器设备名称。

Linux平台方案

  • 监听/dev/input事件文件
    Linux下每个输入设备对应/dev/input/event*文件,步骤很简单:
    1. 用evtest工具扫一遍所有event设备,找到扫码器对应的那个(扫个码看哪个设备有输出);
    2. 用python-evdev库写脚本,同时监听扫码器和主键盘的event文件,捕获输入时记录设备信息和内容:
      from evdev import InputDevice, categorize, ecodes
      import datetime
      
      scanner = InputDevice('/dev/input/eventX')
      keyboard = InputDevice('/dev/input/eventY')
      
      def log_input(device_name, key):
          with open('input_log.txt', 'a') as f:
              f.write(f"{datetime.datetime.now()} | {device_name} | {key}\n")
      
      # 监听扫码器
      for event in scanner.read_loop():
          if event.type == ecodes.EV_KEY and event.value == 1:
              key = categorize(event).keycode
              log_input("扫码器", key)
      
      # 可单独开线程监听主键盘,这里简化示例
      
  • udev规则辅助标记设备
    你可以给扫码器设置udev规则,让系统给它分配一个固定的别名(比如/dev/scanner_keyboard),这样脚本里不用每次找event编号,更稳定。

关键注意点

  • 先锁定设备唯一标识:不管用哪种方法,第一步一定要确认两个设备的区分特征(比如Windows的设备实例ID、Linux的VID/PID),别靠输入速度这类软特征,容易误判;
  • 日志格式要清晰:建议包含时间戳、设备名称/ID、输入内容,方便后期溯源;
  • 权限问题:Linux下监听event文件需要root权限,Windows下脚本可能需要管理员权限才能捕获全局输入。

备注:内容来源于stack exchange,提问作者Matej Tirpak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:39:33