2009-03-05 103 views
9

如何使用Java检测PC已空闲30秒?如何使用Java检测PC已空闲30秒?

EDITED

闲置我的意思是,有没有用户活动。用户在30秒内不做任何事情。我希望做一个像Windows一样的应用程序,它可以检测到用户什么都不做,并进入stad-by。

+0

你能以更具体的方式更改你的问题吗? – rogeriopvl 2009-03-05 10:21:40

+0

您需要定义'空闲' - 是否没有用户输入,没有磁盘活动,没有进程运行,平均CPU负载或什么? – Skizz 2009-03-05 10:25:16

+0

“空闲”甚至是什么意思?没有/很少的CPU活动(多处理器系统)?没有用户输入?没有网络流量?没有硬盘I/O? – sleske 2009-03-05 10:26:07

回答

6

直接从java中是不可能的。你必须找到一些本地库,并为此创建一个JNI包装器。

6

不容易看看OperatingSystemMXBean方法getSystemLoadAverage()仅在Java 6之后可用,您可以保留它的跟踪,并且如果它在一段时间内是相同的,则确定pc是空闲的。

这假定空闲处于空闲CPU而言

OperatingSystemMXBean operatingSystemMxBean = ManagementFactory.getOperatingSystemMXBean();