Pergunta

Em C# em uma caixa do Windows, existe uma maneira de descobrir como um processo foi interrompido?Eu dei uma olhada no Processo class, consegui obter um retorno de chamada amigável do evento Exited assim que defini EnableRaisingEvents = true; mas não consegui descobrir se o processo foi encerrado ou se saiu naturalmente?

Foi útil?

Solução

Abra o Process Monitor (da Sysinternals, parte da Microsoft), execute seu processo e deixe-o morrer, depois filtre os resultados do Process Monitor pelo nome do seu processo - você poderá ver tudo o que ele fez, incluindo códigos de saída.

Outras dicas

Você pode usar o código de retorno do processo para isso.Se o seu processo retornar um valor diferente de zero do método Main, você poderá verificar se o processo saiu sozinho ou não (o valor de retorno corresponde).

Boa resposta Antoine, infelizmente não posso alterar o código de retorno.Que pena - acho que preciso restringir o escopo da questão.

Realisticamente, acho que também não preciso de uma solução programática - um utilitário seria bom - dei uma olhada no visual impressionante Explorador de processos mas isso não parece me dar esses detalhes.

O problema que tenho é que o programa que desejo interrogar está sendo executado por um sistema de agendamento, equivalente às tarefas agendadas do Windows, mas não isso.Existe uma maneira de detectar se esse agendador está interrompendo o programa à força?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top