Ich habe eine Anwendung, die nur eine Instanz pro Benutzersitzung ausführen darf. Wenn der Benutzer klickt, um die Anwendung erneut zu starten, möchte ich die bereits zum Fokussieren bringen. ich die Schritte in diesem Tutorial gefolgt WPF Single Instance ApplicationSo rufen Sie einzelne Instanzklasse von App.xaml.cs
und die Schritte in diesem Tutorial:
Schritt 1: die Datei SingleInstance.cs zu Ihrem Projekt hinzufügen.
Schritt 2: Fügen Sie einen Verweis zu Ihrem Projekt hinzu: System.Runtime.Remoting.
Schritt 3: Implementieren Sie Ihre Anwendungsklasse ISingleInstanceApp (definiert in SingleInstance.cs).
Die einzige Methode in dieser Schnittstelle ist:
ausblenden Code kopieren Bool SignalExternalCommandLineArgs (IList args) Diese Methode wird aufgerufen, wenn eine zweite Instanz Ihrer Anwendung auszuführen versucht. Es hat einen args-Parameter, der mit den Befehlszeilenargumenten übereinstimmt, die an die zweite Instanz übergeben werden.
Schritt 4: Definieren Sie Ihre eigene Hauptfunktion, die die Einzelinstanzklasse verwendet.
Sie sollte App-Klasse jetzt ähnlich wie diesen:
ausgeblendet Code kopieren /// Schritt 5: neuer Punkt Haupteintrag.
Wählen Sie Projekteigenschaften -> Anwendung und setzen Sie "Startobjekt" auf Ihren App-Klassennamen anstelle von "(Nicht gesetzt)".
Schritt 6: Brechen Sie die Standard-WPF-Hauptfunktion ab.
Klicken Sie mit der rechten Maustaste auf App.xaml, Eigenschaften, legen Sie Build Action auf "Seite" statt "Anwendungsdefinition" fest.
Ich bleibe bei Schritt 4 Ich weiß nicht, wie ich meine eigene Hauptfunktion definiere, die die Einzelinstanzklasse verwendet? jemand bitte helfen Sie mir, Dank
Werfen Sie einen Blick auf [Meine Frage] (http://stackoverflow.com/questions/38473277/wpf-single-instance-window-clickonce-pass-arguments) und ignoriere den Parameter-Part – lokusking