AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Citrix Fenster / Unterfenster ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Citrix Fenster / Unterfenster ermitteln

Ein Thema von Metschu · begonnen am 1. Nov 2019 · letzter Beitrag vom 2. Nov 2019
Antwort Antwort
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Citrix Fenster / Unterfenster ermitteln

  Alt 1. Nov 2019, 11:24
Hallo zusammen,

ich möchte eine auf Citrix laufende Anwendung fernsteuern. Wenn ich einen Daten eingebe und Enter sende, wird ggfs ein Mitteilungsfenster geöffnet. Dieser Inhalt wird ausgewertet und entsprechend darauf reagiert.
Bis hierhin klappt alles soweit

Nun kann es sein, das diese Anwendung mehrfach auf dem läuft. Hier möchte ich herausfinden, ob das Mitteilungsfenster von meiner "Ferngesteuerten" Anwendung ist. Von dieser habe ich ja das Handle.
Mit WinSpy sieht die Hirachie dann so aus wie in dem Bild im Anhang.
Der Codegenerator von WinSpy wirft mir folgenden Code aus:
Delphi-Quellcode:
var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('Transparent Windows Client','POS-Desktop - ************* - \\Remote');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'Transparent Windows Client', nil);
    if wndChild <> 0 then
    begin
      ShowMessage('Window Handle: ' + IntToStr(wndChild));
      FlashControl(wndChild); // internal function
    end;
  end;
end.
Nur bekomme ich als Handle hier immer "0" raus.

Auch FindWindowEx und diverse Vorschläge aus der Suche bringen immer "0" als Ergebnis.

Da WinSpy dies aber erkennt, muss es ja irgendwie klappen...

Nur wie??

Gruß

Torsten
Miniaturansicht angehängter Grafiken
000003.jpg  
Torsten
Ich kam, sah und alles Funktionierte.
Dann klingelte mein Wecker...
  Mit Zitat antworten Zitat
Alt 1. Nov 2019, 18:13     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Citrix Fenster / Unterfenster ermitteln

  Alt 1. Nov 2019, 20:39
Der Code kam so aus der Funktion "Codegenerator" aus WinSpy.

Das Fenster hat zwar einen Titel, aber ich weiß nicht welchen, da der Titel ja abhängig vom Ergebnis der Aktion aus der Citrix Software ist. Anhand des Titels weiß ich, welche Aktion als nächstes Fällig ist.
Ziel ist es herauszufinden, ist "Service-POS XXX" (hat eine einmalige Nummer) das letzte Fenster oder gibt es hier noch ein Unterfenster, wenn ja, mit welchem Titel.

Aktuell Frage ich mit "EnumWindows" alle Fenster ab die als ClassName "Transparent Windows" haben. Dies klappt, allerdings nur wenn eine Instanz läuft. Bei mehreren Instanzen kann ich so nicht mehr zuordnen, welches Unterfenster wo hin gehört.

Das Handle des ersten Fensters finde ich ja mit "FindWindow". In "FindWindowEX" übergebe ich das Handle aus "FindWindow" und den mit bekannten ClassName. Als Ergeniss bekomme ich dann aber "0" raus, selbst wenn ich den Namen des Fensters anstelle NIL eingebe
Torsten
Ich kam, sah und alles Funktionierte.
Dann klingelte mein Wecker...
  Mit Zitat antworten Zitat
Alt 1. Nov 2019, 21:24     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Citrix Fenster / Unterfenster ermitteln

  Alt 2. Nov 2019, 22:03
Hallo Frühlingsrolle,

vielen Dank für deinen Tipp mit "GetWindow". Dies brachte den gewünschten Erfolg. Zwar hat "GW_Child" hier auch immer "0" rausgeworfen, "GW_EnablePopUp" zeigt mir das richtige Handle. Ist kein Übergeordnetes Fenster vorhanden, bekomme ich "0" > so ist es Super

Bei Citrix ist das alles anscheinend etwas anders.

Gruß

Torsten
Torsten
Ich kam, sah und alles Funktionierte.
Dann klingelte mein Wecker...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz