Home > Artikel
Verhindern, dass eine Applikation mehrfach gestartet werden kann

Veröffentlicht von am Tuesday, April 29, 2003 6:54 AM

Manchmal ist es notwendig, den Start einer Applikation nur ein einziges Mal zu erlauben. Als Standard gilt allerdings, dass Applikationen mehrfach gestartet werden können. Dieser Tipp ermöglicht es, zu kontrollieren, ob eine Datei bereits gestartet ist.
Die Ermittlung, ob ein Programm schon läuft, geschieht über die Klasse Process aus dem Namespace System.Diagnostics. Deren statische Methode GetProcessesByName() liefert ein Array aller laufenden Prozesse mit dem angegebenen Namen. Den Namen des aktuell laufenden Prozesses ermitteln Sie über die Eigenschaft ProcessName der statischen Methode GetCurrentProcess().

Da der aktuelle Prozess bei der Ausführung dieses Befehls bereits läuft, müssen Sie kontrollieren, ob mehr als ein Eintrag im Array enthalten sind (Eintrag 1 ist der schon laufende Prozess, Eintrag 2 der gerade mit der Überprüfung beschäftigte des gleichen Programms). Die Überprüfung erfolgt sinnvollerweise in der Methode Main(), der Namespace System.Diagnostics muss eingebunden sein.

static void Main() 
{
   /* Abfragen, ob bereits ein Prozess mit demselben Namen wie 
    * dem aktuellen Prozess ausgeführt wird */
   if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)
   {
      /* Die Anwendung wird bereits ausgeführt */
      MessageBox.Show("Das Programm läuft bereits", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Stop);
      return;
   }
   
   /* Anwendung mit dem Startformular starten */
   Application.Run(new StartForm());
}

Kommentar hinzufügen

Microsoft Community Guide
Neue Artikel
  • Nachtrag zum Vortrag :-) Attribute in .NET, Referent: Jan A. Staecker
    Frage wie lokalisiert man den Namen der Category; Frage welche Typen der Serialisation existieren
  • Dynamic IP-Updater for Home Hosting
    I like to discuss in this article how you can host your website or your personal web-log for a song. Most of you have a DSL flat internet-account and you want to use your dial-in connection for hosting purpose
  • C# GPS Reader
    In this brief article, I like to show you how to read data from a GPS mouse and persist it in a database. You need a GPS Mouse, Visual Studio and SqlServer to follow this article
  •  

    Neue Beiträge
  • Softwareentwickler C++ in der Automatisierung (m/w)
    Für ein Projekt in der Automatisierungstechnik suchen wir für unsere Niederlassung Süd in Nürnberg/Fürth mehrere Softwareentwickler mit Erfahrung in C++ zu Anstellung
  • .Net Entwickler m/w für CRM Software in Festanstellung
    Spannende Inhouse Stelle zu besetzen!
  • Sharepoint Koordinator Inhouse (m/w) ab sofort gesucht
    Dringend Kandidaten für Sharepoint Aufgaben gesucht!


  • Copyright © 2003 - 2007 .NET Developers Group München