Как я могу получить Windows последняя причина перезагрузки

Я хотел бы знать то, что является Windows API function (если кто-либо существует), который предоставляет информацию о последнем источнике перезагрузки Windows. Существует три основных возможных причины:

  1. Компьютер разрушается на "синем" экране
  2. Пользователь или программа завершают работу/перезапускают компьютера
  3. Питание потеряно

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

Я должен поддерживать Windows Vista и Windows 7.

Ответ:

Кажется, что нет никакого прямого API для получения той информации. Вместо этого мы должны получить Windows Event Log. Системная информация о перезагрузке расположена в Event Viewer / Windows Logs/System. Вот различная информация, предоставленная идентификаторами события:

  • 6005: Запуск Windows
  • 6006: Windows завершает работу (правильно)
  • 6008: Windows завершает работу (неожиданно)

Я еще не получаю различие между потерянным питанием и системным катастрофическим отказом, но это - хорошее начало.

57
задан M. Tibbits 10 August 2011 в 05:52
поделиться

1 ответ

Взгляните на API событий . Случай а) (BlueScreen, пользователь вырезать хордуку питания или систему) вызывает заметку («Система не закрывала правильно» или что-то подобное), чтобы оставить в журнале событий «Система» в следующий раз, когда система перезагружается должным образом. Вы должны быть в состоянии получить доступ к нему программно, используя вышеупомянутое API (честно, я никогда не использовал его, но он должен работать).

17
ответ дан 24 November 2019 в 19:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: