当前位置:  开发笔记 > 编程语言 > 正文

在linux中检测键盘,鼠标活动

如何解决《在linux中检测键盘,鼠标活动》经验,为你挑选了2个好方法。

我需要一种方法来检测Linux上的鼠标/键盘活动.类似于任何IM程序的东西.如果没有检测到任何活动,例如5分钟,它会将您的IM状态设置为"我现在不在这里".

对此有任何帮助表示赞赏.

谢谢.



1> rosch..:

或者只需使用xprintidle返回空闲时间的命令(以毫秒为单位).

它已经为基于debian的系统打包.(源代码在原始网站dtek.chalmers.se/~henoch上不再可用,但你可以在packages.ubuntu.com上获得)

关于freshmeat.net的更多信息



2> Gilles Queno..:

完整的c解决方案:(将整个代码剪切并粘贴到终端中)

cat>/tmp/idletime.c<
#include 
#include 
#include 
#include 
#include 

int GetIdleTime () {
        time_t idle_time;
        static XScreenSaverInfo *mit_info;
        Display *display;
        int screen;
        mit_info = XScreenSaverAllocInfo();
        if((display=XOpenDisplay(NULL)) == NULL) { return(-1); }
        screen = DefaultScreen(display);
        XScreenSaverQueryInfo(display, RootWindow(display,screen), mit_info);
        idle_time = (mit_info->idle) / 1000;
        XFree(mit_info);
        XCloseDisplay(display); 
        return idle_time;
}

int main() {
        printf("%d\n", GetIdleTime());
        return 0;
}
EOF

gcc -Wall /tmp/idletime.c -o /tmp/idletime -L/usr/X11R6/lib/ -lX11 -lXext -lXss 
DISPLAY=:0 /tmp/idletime

(主要部分来自X11 :: IdleTime perl模块)


作为X11 :: IdleTime模块的作者,我很高兴看到11年后人们仍在使用它.
但是你的编译行是错误的.它需要按此顺序工作,否则链接器会认为不需要库,并且如果将源文件放在它们之后将丢弃它们:gcc idletime.c -o idletime -lX11 -lXext -lXss
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有