4

有没有一种简单的方法来检测 Linux 或 Xorg 或 Qt4 或 Kde4 环境中的鼠标或键盘活动?显然不仅在特定窗口上,而且在整个 Xorg 桌面上。

4

4 回答 4

1

您可以使用 XScreenSaver 扩展 ( man Xss)。它可以使用以下函数为您提供此结构的值XScreenSaverQueryInfo

   typedef struct {
       Window window;                /∗ screen saver window */
       int state;                    /∗ ScreenSaver{Off,On,Disabled} */
       int kind;                     /∗ ScreenSaver{Blanked,Internal,External} */
       unsigned long til_or_since;   /∗ milliseconds */
       unsigned long idle;           /∗ milliseconds */
       unsigned long event_mask;     /∗ events */
   } XScreenSaverInfo;

空闲字段指定自在任何输入设备上从用户接收到最后一次输入以来的毫秒数。

我不知道这个只有 Qt 的解决方案。

于 2008-12-08T22:40:48.320 回答
0

寻找 expectk,它是开源的,将提供示例。

于 2008-12-10T18:55:20.333 回答
0

尝试XRecord(抓取键和鼠标是另一种常见的解决方案,但它与其他应用程序抓取有问题)。

这是我前段时间使用的一些链接:http: //mtoader.blogspot.com/2005/02/you-want-recording-x11-event-recording.html

于 2009-01-15T22:03:24.360 回答
-1

我不熟悉 Qt4 或 KDE API 的内容。

但是一般而言,在任何 X11 系统上,键盘或鼠标输入仅传递到活动窗口,除非您调用底层XGrabMouse的 ,XGrabKeyboard等函数。

当然,一旦你这样做了,没有其他窗口可以接收这些输入事件,所以你必须确保你的程序有办法在你完成后释放鼠标和/或键盘输入。

于 2008-12-08T22:39:11.193 回答