Я хотел бы знать, что такое функция Windows API (если она существует), которая предоставляет информацию о последнем источнике перезагрузки Windows. Существуют три основные причины:
- Компьютер разбился на синем экране
- Пользователь или программа выключения/перезагрузки компьютера
- Потерянная мощность
Чем больше деталей, тем лучше. Тем не менее, мне нужно знать, по крайней мере, какая причина, из основных.
Мне нужно поддерживать Windows Vista и Windows 7.
Ответ:
Кажется, что нет прямого API для получения этой информации. Вместо этого нам нужно собрать журнал событий Windows. Информация о перезагрузке системы находится в окне просмотра событий /Windows Logs/System. Вот информация, предоставленная идентификаторами событий:
- 6005: запуск Windows
- 6006: выключение Windows (правильно)
- 6008: выключение Windows (неожиданно)
Я еще не понял разницу между потерянной мощностью и сбоем системы, но это хороший старт.