Захватить завершение работы Windows, выйти из системы и перезапустить ее в службе Windows, встроенной в Java? - PullRequest
0 голосов
/ 01 августа 2011

Есть ли способ отловить событие выхода из системы Windows и / или выключения в службе Windows, встроенной в Java?

Я хочу перехватить событие Windows в службе Windows, а после захвата хочу отправить письмо.

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Вы можете получать уведомления в обычном коде режима пользователя через WM_QUERYENDSESSION. Однако вам нужно будет использовать JNI и создать окно, с которым вы связываете WndProc для получения этого сообщения.

0 голосов
/ 01 августа 2011

Я не думаю, что у вас здесь есть чистое Java-решение.

Я вижу два пути.

Вы можете запустить свой процесс как службу Windows.Таким образом, вы можете предположить, что, если он выходит из строя, это происходит вместе с закрытием процесса ОС.Это не на 100% правильно, а относительно просто.

Другой способ - найти какой-то процесс, который запускается при выходе из строя ОС, и попытаться выполнить опрос процессов.В качестве альтернативы вы можете использовать WMI события.Для подключения к WMI из Java вы можете использовать одно из: JaWin , J-integra , J-interop или создать свой собственный скрипт WMI в VBScript или JScript изапустите его из Java, используя CScript.

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