[C#] Nur eine Instanz eines Programms erlauben.

big-bang90

Mitglied
Hallo,

ich brauche mal wieder eure Hilfe.

Ich habe mir ein kleines recht unkompliziertes Programm in C# geschrieben. Das funktioniert auch soweit ohne Probleme.
Jetzt hätte ich noch gerne das man das Programm nur einmal ausführen kann und wenn man es nochmal starten willl, das es wieder in den Vordergrund kommt. Ich habe auch schon einige Codesnippets gefunden, nur verstehe ich die noch nicht so ganz und es will auch einfach nicht funktionieren. Hier hab ich was gefunden nur mekert der dann die ganze Zeit rum.
Ich hoffe ihr könnt mir paar Tipss geben oder irgendeine Anleitung wo das gut erklärt wird.

Vielen dank im vorraus.

MfG
 

big-bang90

Mitglied
Der Link ist gut, nur was ich nicht verstehe wo für ist das "m" das zeigt der mir die ganze zeit als fehler.
Ich schreibe das doch mit in die "Program.cs" Datei, oder?
 
Zuletzt bearbeitet:

Shakie

Erfahrenes Mitglied
Die Zeile muss wahrscheinlich durch
C#:
System.Threading.Mutex m = new System.Threading.Mutex(true, "YourNameHere", out ok);
ersetzt werden.
 

big-bang90

Mitglied
Ich hab jetzt alles so eingegeben wie das da steht. Aber ich kann meine Anwendung immernoch öfters als einmal öffnen.
Woran könnte das liegen?
 

big-bang90

Mitglied
In welche Datei muss ich das denn reinschreiben und an welche Stelle?
Sorry, bin voll der Anfänger in C#.
Aber danke für deine Hilfe.
 

big-bang90

Mitglied
Jetzt ist nur noch die Frage, wie ich das hinbekomme, dass das Programm nach dem Klick auf ok wieder in den Vordgrund kommt.
Kannst du mir vielleicht noch ein Tipp geben?
 

Cromon

Erfahrenes Mitglied
Eine Variante wäre es, dass eine laufende Instanz ein Interface via Remoting zur Verfügung stellt welches die zweite Instanz dann anfragt und da eine entsprechende Funktion aufruft, welche dann wiederum in der ersten Instanz ausgeführt wird. Dann kannst du ganz normal in der laufenden Instanz dich selbst in die Vordergrund bringen.