Como posso obter o último motivo de reinicialização do Windows

Gostaria de saber qual é a função da API do Windows (se houver) que fornece informações sobre a última fonte de reinicialização do Windows. Existem três principais causas possíveis:

O computador travou em uma tela azulUm usuário ou um programa desligou / reiniciou o computadorUm poder perdido

Quanto mais detalhes eu conseguir, melhor. No entanto, preciso saber pelo menos qual é o motivo dos principais.

Preciso dar suporte ao Windows Vista e Windows 7.

Responda:

Parece que não há API direta para obter essas informações. Em vez disso, precisamos coletar o log de eventos do Windows. As informações de reinicialização do sistema estão localizadas em Visualizador de Eventos / Logs do Windows / Sistema. Aqui estão as várias informações fornecidas pelos IDs do evento:

6005: Inicialização do Windows6006: Desligamento do Windows (corretamente)6008: Desligamento do Windows (inesperadamente)

Ainda não entendo a diferença entre energia perdida e falha no sistema, mas é um bom começo.

questionAnswers(2)

yourAnswerToTheQuestion