Есть ли способ для Java-приложения определить, заблокирован ли экран? - PullRequest
9 голосов
/ 16 января 2009

Я ищу способ узнать, в приложении Java ( без JNI - это многоплатформенное приложение) может определить, заблокирован ли экран.

Для информации ... наше приложение записывает время, пока пользователь работает, - мы хотим, чтобы оно автоматически прекращало запись, когда экран заблокирован, вместо того, чтобы пользователю приходилось делать это явно.

Ответы [ 2 ]

1 голос
/ 16 января 2009

Я подтверждаю, что, похоже, нет Java API для определения состояния блокировки экрана.

Spark разработчик попытался сделать это в 2006 году (например, поток показывает ), но без указания каких-либо подробностей о реализации.
Тем не менее, скорее всего, это связано с JNI и собственным вызовом таких функций, как WTSQuerySessionInformation (для обнаружения отключения от сети используйте WTSQuerySessionInformation(NULL, WTS_CURRENT_SESSION, WTSConnectState) и ищите WTSDisconnected).

Итак, как указал Майкл , не существует универсального ответа "мультиплатформенный" (насколько мне известно).

1 голос
/ 16 января 2009

Я не думаю, что есть API для этого или даже способ сделать все это. Разбор снимков экрана, созданных java.awt.Robot, не зависит ни от платформы, ни от версии, ни даже от конфигурации, и, в общем, я не думаю, что «экран заблокирован» - это достаточно хорошо определенная концепция, которую можно использовать в этом смысле - в Linux может быть более одного «экрана» (X-сервер), вы можете переключаться на консольные терминалы, у вас могут быть приложения, работающие на одной (или нескольких) машинах, отображающие их GUI на другой машине по сети ...

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