Ciao
Devi usare un Mutex per stabilire se l'applicazione è già stata avviata. Questo è un esempio di come puoi usarlo (preso da quest'altro mio post: http://www.dotnethell.it/forum/messages.aspx?ThreadID=25880)
static void Main()
{
//Prova ad aprire il mutex
Mutex mut = null;
try
{
mut = Mutex.OpenExisting("SINGIST");
}
catch (Exception)
{
}
//Se non è aperto significa che non esiste, quindi lo crea
if (mut == null)
{
mut = new Mutex(true, "SINGIST");
}
//altrimenti l'applicazione è già aperta, quindi non ne avvio un'altra
else
{
return;
}
//Avvia l'applicazione (solo se è la prima)
Application.EnableVisualStyles();
Application.Run(new MainForm());
}
Il codice deve andare a sostituire\integrare la void Main nel tuo file Program.cs.
Per ulteriori informazioni resto disponibile, fammi sapere
Luca