How to detect that a PC has been idle for 30 seconds using Java?

后端 未结 4 1982
小蘑菇
小蘑菇 2020-12-31 16:34

How to detect that a PC has been idle for 30 seconds using Java?

EDITED

With idle I mean that there are no user activity. The user does nothing in 30 seconds

相关标签:
4条回答
  • 2020-12-31 16:58

    Not possible as requested, but you can create workarounds using the java.lang.management API. A JNI implementation can also be found on javaworld.

    0 讨论(0)
  • 2020-12-31 17:00

    Not easy to do have a look at OperatingSystemMXBean method getSystemLoadAverage() only available since java 6 you could keep a track of it and if it is the same for a while determine the pc is idle.

    This assumes idle in terms of idle CPU

    OperatingSystemMXBean operatingSystemMxBean = ManagementFactory.getOperatingSystemMXBean();

    0 讨论(0)
  • 2020-12-31 17:14

    Directly from java it is not possible. You'll have to find some native library and create a JNI wrapper for that.

    0 讨论(0)
  • 2020-12-31 17:16

    I've come across this excellent example of detecting system wide idle time using JNA. Java Native Access (JNA) is a library that provides access to Java Native Interface (JNI) without the need for you to actually write native code.

    Here's the example that is very close to what you're asking for.

    0 讨论(0)
提交回复
热议问题