En C #, je peux démarrer un processus avec
process.start (program.exe);
Comment savoir si le programme est toujours en cours d’exécution ou s’il est fermé?
MSDN System.Diagnostics.Process
Si vous voulez savoir tout de suite , vous pouvez vérifier la propriété HasExited
.
var isRunning = !process.HasExited;
Si le processus est rapide, attendez simplement.
process.WaitForExit();
Si vous en démarrez en arrière-plan, abonnez-vous à l’événement Exited après avoir défini EnableRaisingEvents sur true.
process.EnableRaisingEvents = true; process.Exited += (sender, e) => { /* do whatever */ };
Process p = new Process(); p.Exited += new EventHandler(p_Exited); p.StartInfo.FileName = @"path to file"; p.EnableRaisingEvents = true; p.Start(); void p_Exited(object sender, EventArgs e) { MessageBox.Show("Process exited"); }
Veillez à enregistrer l’object Process
si vous utilisez l’appel statique Process.Start()
(ou créez une instance avec new
), puis vérifiez la propriété HasExited
ou souscrivez à l’événement Exited
, selon vos besoins.
Affectez un gestionnaire d’événement à l’événement terminé .
Ce lien MSDN contient un exemple de code – je ne le répéterai pas ici.
Consultez la documentation MSDN pour la classe Process .
En particulier, il existe un événement ( Exited ) que vous pouvez écouter.