java - reg计算系统空闲时间

标签 java events swing

请帮我解决下面的问题

如何找出系统空闲时间,意味着计算用户保持系统空闲的时间(即不移动鼠标和不触摸键盘)以及系统空闲的时间。另外我应该需要一个excel或发送给用户的邮件,其中包含当天和该特定系统的所有空闲时间的总和。

问候, 禅都。

最佳答案

使用PointerInfo可以查出用户的鼠标在哪里:

MouseInfo.getPointerInfo().getLocation()

使用此方法不断轮询指针位置,如果发现位置自上次检查以来发生变化,则将空闲时间重置为 0。这是一些测试代码:

public static void main(String[] args) throws Exception {

    long idleTime = 0 ;
    long start = System.currentTimeMillis();
    Point currLocation = MouseInfo.getPointerInfo().getLocation();
    while(true){
        Thread.sleep(1000);
        Point newLocation = MouseInfo.getPointerInfo().getLocation();
        if(newLocation.equals(currLocation)){
            //not moved
            idleTime = System.currentTimeMillis() - start;
        }
        else{
            System.out.printf("Idle time was: %s ms", idleTime);
            idleTime=0;
            start =  System.currentTimeMillis();
            break;
        }
        currLocation = newLocation;

    }
}

另请查看 this blog post ,它使用 JNA 检测空闲时间。

关于java - reg计算系统空闲时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4352803/

相关文章:

java - 在java中访问嵌套的elasticsearch字段

java - 如何在 JSF/Richfaces 上设置 HttpOnly 标志

java - Oracle SOA Suite 中的自定义记录器记录到错误的文件

javascript - 使用鼠标事件通过 Javascript 移动图像

javascript - 使用 jquery 在 body mouseup 事件后停止传播?

java - 将我的代码从标签更改为 JLabel 有何作用?

java - 移动 Java Swing 图形

java - 通知桌面任务已完成

java - 可靠地获取时差 - Android

Javascript 正则表达式 [删除事件]