J'ai une application winforms C# qui a besoin de démarrer un exe externe de temps en temps, mais je ne souhaite pas démarrer un autre processus si un est déjà en cours d'exécution, mais plutôt passer à celui-ci.Comment puis-je savoir si un processus est déjà en cours d'exécution avec C#?
Alors, comment en C# serait-je ainsi dans l'exemple ci-dessous?
using System.Diagnostics;
...
Process foo = new Process();
foo.StartInfo.FileName = @"C:\bar\foo.exe";
foo.StartInfo.Arguments = "Username Password";
bool isRunning = //TODO: Check to see if process foo.exe is already running
if (isRunning)
{
//TODO: Switch to foo.exe process
}
else
{
foo.Start();
}
Ne serait-il pas préférable d'utiliser Equals à la place de contains, votre commentaire ne reflète pas comment il se comportera.
Si je spesifc nom pour être "notepad" son va trouver notepad.exe et tout autre processus qui a le bloc-notes dans son nom. – EKS
La ligne 'foreach (Processus clsProcess dans Process.GetProcesses) {' devrait lire 'foreach (Processus clsProcess dans Process.GetProcesses() {' –
@John M - Bons yeux! Fixé – DaveK