Question

À partir de C# sur une machine Windows, existe-t-il un moyen de savoir comment un processus a été arrêté ?J'ai jeté un oeil à Processus classe, j'ai réussi à obtenir un rappel amical de l'événement Exited une fois que j'ai défini EnableRaisingEvents = true; mais je n'ai pas réussi à savoir si le processus a été tué ou s'il s'est terminé naturellement ?

Était-ce utile?

La solution

Lancez Process Monitor (de Sysinternals, une partie de Microsoft), exécutez votre processus et laissez-le mourir, puis filtrez les résultats de Process Monitor par nom de votre processus - vous pourrez voir tout ce qu'il a fait, y compris les codes de sortie.

Autres conseils

Vous pouvez utiliser le code retour du processus pour cela.Si votre processus renvoie une valeur non nulle à partir de sa méthode Main, vous pouvez alors vérifier si le processus s'est terminé de lui-même ou non (la valeur de retour correspond).

Belle réponse Antoine, malheureusement je ne peux pas changer le code retour.Mon mauvais - je suppose que je dois affiner la portée de la question.

En réalité, je ne pense même pas avoir besoin d'une solution programmatique non plus - un utilitaire ferait l'affaire - j'ai jeté un coup d'œil à l'impressionnant Explorateur de processus mais cela ne semble pas me donner ces détails.

Le problème que j'ai est que le programme que je souhaite interroger est exécuté par un système de planification, équivalent aux tâches planifiées de Windows, mais pas cela.Existe-t-il un moyen de détecter si ce planificateur arrête de force le programme ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top