Pregunta

Desde C# en un cuadro de Windows, ¿hay alguna manera de saber cómo se detuvo un proceso?He echado un vistazo al Proceso clase, logré obtener una agradable devolución de llamada amigable del evento Exited una vez que configuré EnableRaisingEvents = true; pero no he logrado averiguar si el proceso se eliminó o si salió de forma natural.

¿Fue útil?

Solución

Inicie Process Monitor (de Sysinternals, parte de Microsoft), ejecute su proceso y déjelo morir, luego filtre los resultados de Process Monitor por su nombre de proceso; podrá ver todo lo que hizo, incluidos los códigos de salida.

Otros consejos

Puede utilizar el código de retorno del proceso para eso.Si su proceso devuelve un valor distinto de cero de su método Main, puede verificar si el proceso salió por sí solo (el valor de retorno coincide).

Buena respuesta Antoine, lamentablemente no puedo cambiar el código de retorno.Lo malo: supongo que necesito limitar el alcance de la pregunta.

Siendo realistas, tampoco creo que necesite una solución programática (una utilidad estaría bien). He echado un vistazo a su impresionante aspecto. Explorador de procesos pero eso no parece darme estos detalles.

El problema que tengo es que el programa que deseo interrogar lo ejecuta un sistema de programación, equivalente a las tareas programadas de Windows, pero no eso.¿Existe alguna forma de detectar si ese programador está deteniendo el programa a la fuerza?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top