1

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

  1. Когда пользователь пытается завершить работу, на нем должно появиться подтверждающее сообщение.
  2. Если пользователь нажмет OK, он будет выключен.
  3. Если они нажимают кнопку «Отмена», то окно также должно закрываться, и в базе данных (SQL-сервер) должно быть сделано какое-то уникальное значение.

1 ответ1

6

Зачем вам это нужно?

В Windows уже есть встроенная функция, которая называется «Отслеживание событий выключения». Он включен по умолчанию в серверных ОС, и вы также можете включить его через групповые политики (например, с помощью gpedit.msc) в настольных версиях Windows.

Снимок экрана редактора локальной групповой политики с параметром «Отключить отслеживание событий при отключении»

Это дает вам возможность:

  1. Избегайте, чтобы пользователь выключил машину по ошибке, отображая диалоговое окно, например:Снимок экрана:диалоговое окно завершения работы Windows под Windows 2008
  2. Отслеживайте события завершения работы через Event Viewer с более подробным представлением.

Например:

  • Без включенного трекера событий у вас есть:

Kernel-Power:109 Менеджер питания ядра инициировал переход выключения.
Общее ядро:13 Операционная система завершает работу в системное время 2011 - 09 - 10T00:23:20.247232500Z.

  • С помощью функции «Выключение событий» вы получаете:

USER32: 1074 Обозреватель процессов.EXE инициировал перезагрузку компьютера <имя компьютера> от имени пользователя <имя домена>\<имя пользователя> по следующей причине: потеря сетевого подключения (незапланировано)
Код причины: 0x4050014
Тип выключения: перезагрузка

Отсюда, если вы разработчик или если вы можете нанять его, вы можете легко создать инструмент, который будет сканировать события Windows и импортировать важную информацию в вашу базу данных, включая пользователя, который начал отключение, или причину ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .