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

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

EDITED

闲置我的意思是没有用户活动。 用户在30秒内什么都不做。 我喜欢像Windows这样的应用程序,检测到用户什么都不做,然后进入stad-by。

直接来自java,这是不可能的。 您必须找到一些本机库并为此创建一个JNI包装器。

我遇到过使用JNA检测系统范围空闲时间的优秀示例。 Java Native Access(JNA)是一个库,提供对Java Native Interface(JNI)的访问,而无需您实际编写本机代码。

这是一个非常接近你所要求的例子 。

根据要求不可行,但您可以使用java.lang.management API创建变通方法。 在javaworld上也可以找到JNI实现。

不容易看看OperatingSystemMXBean方法getSystemLoadAverage()仅在java 6中可用,你可以跟踪它,如果它是相同的一段时间确定pc是空闲的。

这假设空闲CPU空闲

OperatingSystemMXBean operatingSystemMxBean = ManagementFactory.getOperatingSystemMXBean();