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