Как определить, что компьютер бездействовал в течение 30 секунд, используя Java? - PullRequest
9 голосов
/ 05 марта 2009

Как определить, что компьютер бездействовал в течение 30 секунд с помощью Java?

EDITED

Под простоями я подразумеваю, что нет активности пользователя. Пользователь ничего не делает в течение 30 секунд. Я хотел бы сделать заявление как Windows, которое обнаруживает, что пользователь ничего не делает, и входит в режим ожидания.

Ответы [ 4 ]

13 голосов
/ 05 марта 2009

Я сталкивался с этим прекрасным примером обнаружения простоя всей системы с помощью JNA . Собственный доступ к Java (JNA) - это библиотека, обеспечивающая доступ к Собственному интерфейсу Java (JNI) , при котором вам не требуется писать собственный код.

Вот пример , который очень близок к тому, что вы просите.

7 голосов
/ 05 марта 2009

По запросу невозможно, но вы можете создать обходные пути, используя java.lang.management API . Реализация JNI также может быть найдена в javaworld .

6 голосов
/ 05 марта 2009

Нелегко взглянуть на метод OperatingSystemMXBean. GetSystemLoadAverage () доступен только после java 6, вы можете отслеживать его и, если он некоторое время остается неизменным, определить, что компьютер не используется.

Это предполагает простоя с точки зрения простоя процессора

OperatingSystemMXBean operatingSystemMxBean = ManagementFactory.getOperatingSystemMXBean ();

6 голосов
/ 05 марта 2009

Непосредственно из Java это невозможно. Вам нужно найти какую-нибудь нативную библиотеку и создать для этого оболочку JNI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...