Benutzer mit den meisten Antworten
Meine WPF Anwendung wird vom Standardbrowser blockiert!

Frage
-
Aus meiner WPF Anwendung starte ich durch Klick auf ein Menü des Hauptfensters den Standardbrowser in einem separaten Prozeß mit Aufruf einer WEB Seite und in der gleichen Funktion wird ein kleines Fenster modal geöffnet:
private bool StartBrowser(ref string pDatasetName, ref string pUserIdent, ref string pCurrPassword) { string dataSetName; string userIdent; string currPassword; string url; string browserFilespec; ... ... // Ermittlung des Standard-Browsers SearchBrowserClass browser = new SearchBrowserClass(); browserFilespec = browser.GetDefaultBrowser(); browserProcessName = Path.GetFileNameWithoutExtension(browserFilespec); // Starten des Browser Prozesses mit // Öffnung der gewünschten Internetseite try { using (browserProcess = new Process()) { browserProcess.StartInfo.FileName = browserFilespec; browserProcess.StartInfo.Arguments = url; browserProcess.Start(); } } catch (Exception ex) { return false; } pDatasetName = dataSetName; pUserIdent = userIdent; pCurrPassword = currPassword; return true; } private void CallWebMnuItem_Click(object sender, RoutedEventArgs e) { string datasetName = string.Empty; string userIdent = string.Empty; string currPassword = string.Empty; if (StartBrowser(ref datasetName, ref userIdent, ref currPassword)) {//Öffnen des Drag and Drop Fensters widgetWnd = new WidgetWnd(datasetName, userIdent, currPassword); widgetWnd.Left = 30; widgetWnd.Top = 80; widgetWnd.ShowDialog(); } }Das kleine Fenster enthält 2 Buttons, mit welchen zwei Strings (mittels Drag and Drop) auf die WEB Seite gezogen werden. Klickt man nun auf den Button [Anmelden] auf der Webseite, so verliert natürlich das kleine Fenster den Fokus. Würde man jetzt das kleine Fenster schließen, so erhält bei Mausklick auf die X-Button das kleine Fenster den Focus zurück und wird geschlossen. Soweit, so gut!
Normalerweise arbeitet man nun auf der geöffneten Webseite, ruft dort weitere Fenster oder Register auf. Will man jetzt das kleine Fenster über den X-Button schließen, so zeigt der Cursor bei Erreichen des kleinen Fensters an Stelle des Pfeils eine Sanduhr und in der Titelleiste des kleinen Fensters erscheint „keine Rückmeldung“. Das kleine Fenster ist blockiert und mit ihm das Hauptfenster meiner Anwendung!
Was muß ich machen um diese Blockade sicher zu vermeiden? Kann mir da jemand helfen?
Klaus
Antworten
-
Hallo Ditmar,
das Problem ist gelöst! Ich habe einen Programmierfehler, eine falsche Deklaration einer String-Variablen gefunden und korrigiert. Sau blöd so etwas, aber das wars! Danke für Deine Mühe.
Gruß
Klaus.Klaus
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 10. Februar 2021 14:12
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 2. März 2021 10:19
Alle Antworten
-
Hallo Klaus,
Damit man einen besseren Überblick bekommt, würdest Du näher auf die Steuerelemente CallWebMnuItem und widgetWnd eingehen? Wie wurden sie definiert, von welchen Klassen (Schnittstellen) erben sie? Ist mit dem kleinen Fenster widgetWnd gemeint? Wenn dem so ist und der Fokus vorlorengeht, versuch es mit der genauen Angabe des Besitzerfensters, wie in diesen Threads vorgeschlagen:
How do I focus a modal WPF Window when the main application window is clicked
Modal dialog focus problems on WPF application (letzte Antwort)
Gruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Donnerstag, 24. Dezember 2020 11:29
- Nicht als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 28. Dezember 2020 10:32
-
Guten Morgen Dimitar,
danke für Deine Antwort. Das kleine Fenster (widgetWnd) ist ein normales Wpf Fenster. Es enthält 2 Buttons, welche per Drag and Drop 2 Strings auf die im Browser geöffnete Webseite gezogen werden. Das funktioniert einwandfrei. Das kleine Fenster, und damit meine ganze Anwendung wird erst dann blockiert, wenn ich auf der Webseite eine Aktion durchführe.
Der Witz dabei ist allerdings, daß die Blockade nur dann eintritt. wenn ich die Exe meiner Anwendung von Außen aufrufe, rufe ich die Anwendung aus der Entwicklungsumgebung (Visual Studio 2019 Community) heraus auf, so wird nichts blockiert und man kann auf der Webseite soviel agieren wie man will!!!
Kapierst Dun das? Ich jedenfalls nicht!
Ich habe Deine Hinweise (widgetWnd.Owner = this) natürlich ausprobiert, leider ohne Erfolg.
Klaus
-
Hallo Ditmar,
das Problem ist gelöst! Ich habe einen Programmierfehler, eine falsche Deklaration einer String-Variablen gefunden und korrigiert. Sau blöd so etwas, aber das wars! Danke für Deine Mühe.
Gruß
Klaus.Klaus
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 10. Februar 2021 14:12
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 2. März 2021 10:19