【发布时间】:2009-12-07 15:24:18
【问题描述】:
我创建了一个 pygtk 程序来监控任何应用程序(即不仅仅是我的应用程序)的键盘状态和鼠标点击。这使用了 Micah Dowty 的 evdev,它基本上监视 /dev/input/event* 的输出并以我可以向用户显示信息的方式解码信息。
该程序非常适用于 USB 键盘和鼠标,但不适用于 USB Wacom(或串行 Wacom),即使以 root 身份运行也是如此。我没有收到任何来自 Wacom 的 /dev/input/* 节点的任何事件,因为它使用它。不仅是我的 Wacom,播客“Meet the Gimp”(Rolf 和 Philippe)中的人也一无所获。
代码位于http://code.google.com/p/key-mon。
要进行测试,您可以运行以下命令:
sudo ./evdev.py /dev/input/event0
例如,当您移动鼠标或单击键盘时,您应该会看到与 event0 相关联的事件。
【问题讨论】:
-
会不会是原来的 evdev 代码不是用来捕捉 wacom 设备的?这些不是也直接在 /Dev/ oder /dev/wacom/ 下注册自己的节点吗? (还没有在工作中使用 Linux 来检查它,抱歉)
-
不,它应该按照 Scott 尝试的方式工作。
wacdump有效吗? -
在 Wacom 中,X 驱动程序可能会抓取输入设备以独占使用(使用
EVIOCGRABioctl)。 -
我也怀疑这一点。当我自己尝试 EVIOCGRAB 时,它失败了。
-
因为这个程序通常用于一个程序(例如 Gimp 或 Inkscape)的截屏。是否可以从我的键盘监视器程序中运行该程序并通过 pyGTK 以某种方式获取事件?