FreeTime - Stefano Passatordi 's Blog


Libera la mente...ecco il Blog di Stefano Passatordi
Statistiche
  • Views Home Page: 156.848
  • Views Posts: 374.423
  • Views Gallerie: 752.217
  • n° Posts: 210
  • n° Commenti: 148
Archivio Posts
Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005
Mappa

Verificare se una istanza dell'applicazione è già in esecuzione.

Prendendo spunto da un post  ecco come si verifica se una istanza di una applicazione è già in esecuzione :

C# :

In C# è necessario modificare il Main() inserendo un controllo su un oggetto mutex.

[STAThread]
static void Main()
{
bool ok;
System.Threading.Mutex m = new System.Threading.Mutex(true,"Stringa_qualsiasi", out ok);

if (!ok)
{
MessageBox.Show("Una istanza dell'applicazione è già in esecuzione.");
return;
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());

GC.KeepAlive(m);
}


VB.net(2005) :

Per VB le cose sono un pò diverse.
Andare nelle proprietà del progetto e attivare ‘Enable application framework’, successivamente nel pannello 'Windows application framework properties' attivare la voce ‘Make single instance application’.
Sempre nello stasso pannello, premere il bottone ‘View Application Events’. A questo punto potrete vedere il seguente codice (di ApplicationEvents.vb):

Namespace My

Partial Friend Class MyApplication

End Class

End Namespace

Per ottenere un avviso quando cercate di lanciare una applicazione già in esecuzione dovete aggiungere la gestione dell'evento MyApplication_StartupNextInstance.
Ecco come dovrete modificare ApplicationEvents.vb :

Imports Microsoft.VisualBasic.Devices
Imports Microsoft.VisualBasic.ApplicationServices
Namespace My

Partial Friend Class MyApplication

Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, _
ByVal e As StartupNextInstanceEventArgs) _
Handles Me.StartupNextInstance

MessageBox.Show("Una istanza dell'applicazione è già in esecuzione.")

End Sub

End Class

End Namespace

Spero vi sia utile
Categoria: Programmazione
giovedì, 22 giu 2006 Ore. 13.46
Ora e Data
Calendario
novembre 2024
lmmgvsd
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
Blogs Amici
    Links
      Copyright © 2002-2007 - Blogs 2.0
      dotNetHell.it | Home Page Blogs
      ASP.NET 2.0 Windows 2003