代码之家  ›  专栏  ›  技术社区  ›  Neel Basu

Linux键盘事件捕获/dev/inputx

  •  12
  • Neel Basu  · 技术社区  · 16 年前

    我试图捕捉键盘事件。 例如,我想从零开始钻取一个键盘记录器。 经过两个小时的战斗,我发现了

    neel@pc1$ ls -l /dev/input/by-id
    lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd -> ../event1
    lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-mouse -> ../event2
    lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-mouse -> ../mouse1
    

    但当我试图

    neel@pc1$ sudo cat /dev/input/usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd
    

    它什么也不产生 没有输出

    经过更多的搜索,现在我正在考虑Xorg中可能有什么东西会阻止它。

    有更多信息吗?? 在say的末尾,我如何从该文件中读取输入?? 还是有其他方法来捕获键盘事件??

    4 回复  |  直到 9 年前
        1
  •  10
  •   Florian Diesch    16 年前

    你读错了设备。请尝试all/dev/input/event*或在/var/log/xorg.0.log中查找用于键盘的设备。

        2
  •  14
  •   msvilans    15 年前

    你好,,

    我最近试图完成类似的工作。

    have a look at the logkeys project:

    http://code.google.com/p/logkeys/

    如果下载源代码并查看logkeys.cc文件,您将找到一种方法,即如何自动检测键盘使用的是哪个/dev/input/event。这将允许您从键盘读取原始扫描代码,而不管当前哪个程序有焦点。logkeys程序还显示了如何将扫描代码转换为字符以及其他有用的技巧。

    希望这有帮助,

    markus.

    类似的东西。

    看看logkeys项目:

    http://code.google.com/p/logkeys/

    如果下载源代码,并查看logkeys.cc文件,您将找到一种方法来自动检测键盘使用的是哪个/dev/input/event。这将允许您从键盘读取原始扫描代码,而不管当前哪个程序有焦点。logkeys程序还演示了如何将扫描代码转换为字符和其他有用的技巧。

    希望这有帮助,

    Markus。

        3
  •  11
  •   Community Mohan Dere    9 年前

    简单的 grep 操作 /过程/总线/输入/设备 文件将生成所有插入机器的键盘:

     grep -E  'Handlers|EV=' /proc/bus/input/devices | \
     grep -B1 'EV=120013' | \
     grep -Eo 'event[0-9]+'
    

    在哪里? EV=120013 是设备支持的事件的位掩码。如所解释的 here .

    这就是它的实现方式 logkeys

        4
  •  9
  •   madhat1    12 年前

    我建议使用evtest应用程序,它列出所有输入设备,并允许您监视它们的事件。