Tengo la aplicación C# winforms que necesita iniciar un exe externo de vez en cuando, pero no deseo iniciar otro proceso si ya se está ejecutando, sino cambiarlo.¿Cómo puedo saber si un proceso ya se está ejecutando usando C#?
Entonces, ¿cómo en C# me gustaría que esto en el ejemplo de abajo?
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();
}
¿No sería seguro usar Equals en lugar de contains? Tu comentario no refleja cómo se comportará.
Si el nombre de spesifc es "notepad" va a encontrar notepad.exe y cualquier otro proceso que tenga el bloc de notas en su nombre. – EKS
La línea 'foreach (Proceso clsProcess en Process.GetProcesses) {' debería leer 'foreach (Proceso clsProceso en Process.GetProcesses() {' –
@John M - ¡Buenos ojos! Reparado – DaveK