Hola que tal.
Puedes hacerlo fácilmente incluyendo en el main del programa el siguiente código :
Process [] aAplica = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (aAplica.Length > 1)
{
MessageBox.Show("La Aplicación ya se encuentra en Proceso");
return;
}
Ahora bien, se podría dar el caso de que cambiases el nombre del programa y lo lanzases igualmente, así que después del código anterior añade este :
bool bAplica;
Mutex oMutex = new Mutex(true, "NombreAplicacion.exe", out bAplica);
if (!bAplica)
{
MessageBox.Show("La Aplicación ya se encuentra en Proceso");
return;
}
Y ahora ya puedes lanzarla :
Application.Run(new Form1());
Espero que te sirva como me sirve a mi.
Un Saludo.