Как отобразить подтверждающее сообщение при выключении Windows?

1216
Atul

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

  1. Когда пользователь пытается завершить работу, на нем должно появиться подтверждающее сообщение.
  2. Если пользователь нажмет OK, он будет выключен.
  3. Если они нажимают кнопку «Отмена», то окно также должно закрываться, и в базе данных (SQL-сервер) должно быть сделано какое-то уникальное значение.
1
Пожалуйста, укажите, какая версия Windows? Мне жаль, что ты полностью потерял меня в последнем пункте, что это значит? Пожалуйста, будьте более ясны. avirk 13 лет назад 0
хорошо, avirk ... это применимо для всех окон, таких как XP, Windows Server 2003, Windows7, и последний момент - когда пользователь нажимает кнопку отмены, затем также закрывается окно, и в базу данных попадает какой-то уникальный номер Atul 13 лет назад 0
И что это за цифры? avirk 13 лет назад 0
любой уникальный номер, например 123145 Atul 13 лет назад 0
Есть идеи, друзья, как это сделать? Atul 13 лет назад 0
Такое поведение зависит от реализации каждого приложения, сделать это легко, если у вас есть исходный код. Вы ничего не можете сделать, чтобы перехватить завершение работы приложений (без какой-либо ** глубокой ** интеграции с explorer.exe и, возможно, с самими окнами (если это вообще возможно)) Nifle 13 лет назад 2
Единственный способ сделать это - иметь другое приложение, которое отслеживает запущенные приложения и запускает их, когда обнаруживает, что «ваше» приложение больше не работает. В любом случае это либо ** OffTopic **, и он входит в stackoverflow, если вы хотите написать собственное решение, либо ** Не реальный вопрос ** - Голосование за закрытие. Nifle 13 лет назад 0
хорошо, но я читал, что мы можем изменить в файле сценария выключения, это возможно? Atul 13 лет назад 0

1 ответ на вопрос

6
Arseni Mourzenko

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

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

A screenshot of Local Group Policy Editor showing "Display Shutdown Event Tracker" option

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

  1. Избегайте, чтобы пользователь выключил машину по ошибке, отображая диалоговое окно, например: A screenshot of a Shut Down Windows dialog under Windows 2008
  2. Отслеживайте события завершения работы через Event Viewer с более подробным представлением.

Например:

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

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

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

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

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

хорошо, спасибо за ваше ценное предложение и совет Atul 13 лет назад 0
но это всплывающее сообщение подтверждения, как я покажу? Atul 13 лет назад 0
@ Атул: извините, мой ответ был неясным по этому вопросу. Смотрите последнее редактирование. Arseni Mourzenko 13 лет назад 0
Хорошо, mainma .... Thnx ваше предложение это показать сообщение с подтверждением при закрытии окна? и как будет одно уникальное значение в базе данных ?? Atul 13 лет назад 0
* «Отображается ли подтверждающее сообщение при закрытии окон?» *: Да. * «Как будет одно уникальное значение в базе данных?» *: Как я уже говорил в последнем абзаце моего ответа, вам нужно создать инструмент, который будет извлекать данные из журнала событий Windows, преобразовывать их и загружать в база данных. Arseni Mourzenko 13 лет назад 1
хорошо, майна, спасибо, большое спасибо за ваш ценный ответ .... Atul 13 лет назад 0