Programm verliert Eingabe-Fokus

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Programm verliert Eingabe-Fokus

Beitrag von Lewi »

Hallo miteinander!

Ich habe das Problem, dass meine xBase++ Anwendung innerhalb einer CTTRIX-Session beim Pop-Up eines Eingabedialogs den Fokus verliert und Windows den Fokus auf eine andere Anwendung innerhalb der Taskbar setzt.

Wird die Anwendung nicht als CITRIX-Session gestartet, tritt der Fokusverlust nicht auf.

Hatte jemand schon einmal das gleiche Problem und eine Lösung gefunden?
Ach ja, es handelt sich um als eine SDI-Anwendung konzipierte Applikation.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Lewi,
das gleiche Problem habe ich auch immer mal wieder!
Allerdings ist es nicht auf Citrix-Rechner beschränkt (ein solcher ist bei mir und meinen Kunden nicht im Einsatz). Es taucht auch nicht immer bei den selben Fenstern oder auf den selben Rechnern auf und ist auch nicht unbedingt reproduzierbar.
Ich vermute mal, dass es immer dann auftauchen kann, wenn das eigene Fenster modal ist und wenn ein weiteres Dialogfenster/Anwendung geöffnet ist. Dabei kann diese auch durchaus minimiert (verkleinertes Word) oder versteckt (Virenscanner) sein!
Das Problem ist eine fehlerhafte Z-Order (Reihenfolge, in der die einzelnen Fenster mittels Tab angesprungen werden können).
Ich selber habe auch noch keine einwandfreie Lösung gefunden, bzw. bin zu faul, daran etwas zu ändern.
Im Prinzip sollte es jedoch ausreichen, wenn Du nach dem Erzeugen des entsprechenden Fenster einfach ein
SetAppFocus( irgendein_Objekt_in_dem_neuen_Fenster )
machst.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hallo Martin,
die von Dir vorgeschlagen Lösung erscheint mir nicht allzu vielversprechend zun sein. Wenn die Applikation aus welchen Gründen auch immer, den Fokus verloren hat, wird die Funktion "SetAppFocus" auch keine Änderung bringen, da zwar mit dieser Funktion der Fokus auf einzelne Fenster innerhalb der Anwendung gesetzt werden kann, aber die Anwendung selbst nicht in den Vordergrund bringt.

Du hast mich aber einen Gedanken gebracht. Ich werden versuchen, über das Windows-API (User32.dll) dem Betriebssystem anweisen, die Anwendung in den Vordergrund zu bringen.

Gruß,
Lewi
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Das Problem ist gelöst. Ich habe einen Weg gefunden, um die eigene Anwendung wieder in den Vordergrund zu bringen. ( siehe Thread: "Anwendung in den Vordergrund bringen/Windows-API")
Antworten