Singola Applicazione (?)

martedì 26 maggio 2009 - 17.32

GPicchiarelli Profilo | Newbie

Salve,

Uso Visual C# 2008 Express, e volevo creare una applicazione che non poteva essere aperta più di una volta. Qualcuno ha dei suggerimenti?
Grazie.

aiedail92 Profilo | Expert

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

MarKonE Profilo | Guru

Ciao, se guardi tra le proprietà dell'applicazione dovresti trovare l'opzione "Rendi a istanza singola" (vedi allegato)

Puoi verificare ?



Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

GPicchiarelli Profilo | Newbie

Su Visual C# 2008 Express non trovo l'opzione che mi indichi.

MarKonE Profilo | Guru

Cavoli, sembra che questa opzione sia valida solo in VB :

http://msdn.microsoft.com/it-it/library/8fz4ssw2(VS.80).aspx

Ti chiedo scusa.

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5