Я хотел бы знать то, что является Windows API function (если кто-либо существует), который предоставляет информацию о последнем источнике перезагрузки Windows. Существует три основных возможных причины:
Чем больше деталей я могу получить, тем лучше. Однако я должен знать, по крайней мере, какая причина это от основных.
Я должен поддерживать Windows Vista и Windows 7.
Ответ:
Кажется, что нет никакого прямого API для получения той информации. Вместо этого мы должны получить Windows Event Log. Системная информация о перезагрузке расположена в Event Viewer / Windows Logs/System. Вот различная информация, предоставленная идентификаторами события:
Я еще не получаю различие между потерянным питанием и системным катастрофическим отказом, но это - хорошее начало.
Взгляните на API событий . Случай а) (BlueScreen, пользователь вырезать хордуку питания или систему) вызывает заметку («Система не закрывала правильно» или что-то подобное), чтобы оставить в журнале событий «Система» в следующий раз, когда система перезагружается должным образом. Вы должны быть в состоянии получить доступ к нему программно, используя вышеупомянутое API (честно, я никогда не использовал его, но он должен работать).