La soluzione del controllo tra i processi attivi ve bene ma non è la strada migliore da seguire perchè non è molto performante rispetto all'utilizzo di System.Threading.Mutex.
Prova così :
[STAThread]
static void Main()
{
bool ok;
System.Threading.Mutex m = new System.Threading.Mutex(true,"Stringa_che vuoi", out ok);
if (!ok)
{
MessageBox.Show("Programma già in esecuzione.");
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
GC.KeepAlive(m);
}
Ciao
Stefano Passatordi
http://blogs.dotnethell.it/stem/