Avatar ·

Wie erstelle ich eine WPF-Anwendung, die nur einmal ausgeführt werden kann?

Hallo zusammen! Ich schreibe eine WPF-Anwendung in C# und bin auf ein Problem gestoßen: Wenn der Benutzer die Anwendung mehrmals startet, öffnen sich mehrere Fenster, was zu Verwirrung und unnötiger Belastung führt. Ich möchte erreichen, dass die Anwendung beim erneuten Start entweder das bereits geöffnete Fenster fokussiert oder eine Meldung ausgibt, dass das Programm bereits läuft. Ich habe versucht, `Process.GetProcessesByName` zu verwenden, aber das ist unzuverlässig, da es mehrere Prozesse mit demselben Namen geben kann. Ich habe im Internet gesucht und viele verschiedene Ansätze gefunden – über `Mutex`, über `EventWaitHandle`, über `NamedPipe`. Ich bin ein Anfänger und verstehe nicht, welche Methode als richtig und sicher gilt. Hier ist ein Beispiel meines Codes (App.xaml.cs), den ich zu modifizieren versuche: ```csharp public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { // Hier möchte ich eine Prüfung auf eine einzelne Instanz hinzufügen base.OnStartup(e); } } ``` Bitte helft mir!