Sprache: C#
Mit diesem Trick wird verhindert, das man eine Applikation mehr als einmal starten kann.
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
System.Threading.Mutex Mu = new System.Threading.Mutex(false, "{86E6517F-71A5-4ea6-A4E6-DA3AF2932C97}");
if(Mu.WaitOne(0, false))
Application.Run(new Form1());
else
MessageBox.Show("Dieses Programm ist bereits geöffnet");
}
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
System.Threading.Mutex Mu = new System.Threading.Mutex(false, "{86E6517F-71A5-4ea6-A4E6-DA3AF2932C97}");
if(Mu.WaitOne(0, false))
Application.Run(new Form1());
else
MessageBox.Show("Dieses Programm ist bereits geöffnet");
}
Alte URL:
/snippet/nur-eine-instanz-eines-programms-zulassen/103
Für jedes Programm, von dem man nur eine Instanz zulassendas will, musst man einen neuen eindeutigen Namen (hier: „{86E6517F-71A5-4ea6-A4E6-DA3AF2932C97}“) für die Mutex wählen. Unterschiedliche Programme, die denselben Namen verwenden, würden sich gleichzeitig aussperren.
Außerdem sollte man jeden Mutex nach Gebrauch unbedingt mit „ReleaseMutex()“ wieder freigeben.