Entwickler-Ecke

Sonstiges (.NET) - C# Programm nur einmal Startbar


Creedy - Do 19.08.10 14:26
Titel: C# Programm nur einmal Startbar
Hi,

ich habe ein Programm für eine Projektverwaltung in C# geschrieben welche die erfassten Daten Binär Serialisiert. Nun hab ich das Problem, dass man die .exe mehrmals Starten kann und so Fehler entstehen können da beide auf die selben Dateien zugreifen. Nun würde ich gerne irgendwie deffinieren das dieses Programm nur einmal gestartet sein kann , wen man mehrmals die exe ausführt sollte vll die schon gestartete Anwendung in den Vordergrund gerufen werden.

Leider hab ich hier im Forum noch nichts dazu gefunden und bei Galileo auch nicht.
Gibt es evtl. schon in C# eine möglichkeit dies zu realisieren , oder hätte jemand einen Vorschlag ?


danielf - Do 19.08.10 14:53

Hallo,

dafür gibt es mehrere Möglichkeiten (vgl. http://www.daniweb.com/forums/thread116055.html).

Über den Programmnamen finde ich allerdings nicht schön und würde deshalb die Mutext Lösung nehmen. Hier [http://www.programmersheaven.com/mb/csharp/209938/209938/how-can-i-check-if-my-application-is-already-running/] findest du auch eine kompaktere Version davon.

Wenn das Programm bereits gestartet ist, muss du über den GetProcessByName dir die Instanz holen und das Window handle in Vordergrund bringen. Dazu gibt es viele Hinweise im Netz.

Gruß


Th69 - Do 19.08.10 15:31

[offtopic]
Lustig wäre dann aber, wenn bei zufällig gleichem Programmnamen (egal ob Verwendung von Mutex oder nicht) dann ein anderes Programm in den Vordergrund geholt wird...
[/offtopic]


Greenberet - Do 19.08.10 19:42

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
[offtopic]
Lustig wäre dann aber, wenn bei zufällig gleichem Programmnamen (egal ob Verwendung von Mutex oder nicht) dann ein anderes Programm in den Vordergrund geholt wird...
[/offtopic]


Aus diesem Grund verwende ich die GUID vom Programm^^