![]() |
Text aus Drittprogramm auslesen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
im Anhang habe ich einen Screenshot von WinSpy - dort sehe ich ja den Text "Not Connected" von einer Drittapplication wie stellt WinSpy an, diesen Text auszulesen ? die ControlID scheint die Konstante zu sein, die immer gleich bleibt - aber wie komme an diesen Text ran ? handle des Fensters etc. ist kein problem Danke Ralf |
Re: Text aus Drittprogramm auslesen
Mit
![]() ![]() |
Re: Text aus Drittprogramm auslesen
Wow danke für die schnelle Antwort...
Ralf |
Re: Text aus Drittprogramm auslesen
Hi,
so wie es aussieht brauche ich noch das parenthandle - wenn ich den wert manuell einsetze dann funktioniert es - aber wie kann ich ihn automatisch ermitteln :gruebel:
Delphi-Quellcode:
Danke für die Hilfe
procedure TForm1.Button1Click(Sender: TObject);
var hwnd, handle, parenthandle: thandle; buffer: array[0..1024] of Char; begin hWnd := FindWindow(nil, 'Globalserver - Desktop Edition by Omega Research'); handle := handlefromid(hwnd,5191); parenthandle:= {??? wie ermittle ich dieses ?}; handle:=getdlgitem(parenthandle,5191); // parenthandle, controlid sendmessage(handle,WM_gettext,sizeof(buffer),Integer(@buffer)); label1.Caption:='Status: '+string(buffer); end; Ralf |
Re: Text aus Drittprogramm auslesen
Die ID ändert sich ja nicht. Es spricht also nichts dagegen diese hard zu coden. Ansonsten bekommst du das Eltern-Fenster mit
![]() |
Re: Text aus Drittprogramm auslesen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ja Getparent war die Lösung - DANKE - aber das Handle von Findwindow bei jedem neustart komplett anderst (ich hab mal einen screenshot von dem Prog angehängt) - vielleicht liegts ja daran das der text den ich auslese in einer groupbox ist ?! das einzige was ich als konstante festgestellt habe war die controlid Hier nochmal der Code der letztlich zum Ziel führt (falls jemand ein ähnliches Problem hat)
Delphi-Quellcode:
Nochmals danke
procedure TForm1.Button1Click(Sender: TObject);
var hwnd, handle, parenthandle: thandle; text: dword; buffer: array[0..1024] of Char; begin hWnd := FindWindow(nil, 'Globalserver - Desktop Edition by Omega Research'); handle := handlefromid(hwnd,5191); parenthandle:=getparent(handle) ; handle:=getdlgitem(parenthandle,5191); // parenthandle, controlid sendmessage(handle,WM_gettext,sizeof(buffer),Integer(@buffer)); label1.Caption:='Status: '+string(buffer); end; Tschüss Ralf |
Re: Text aus Drittprogramm auslesen
Ich versteghe den Code immer noch nicht. Das das Fensterhandle jedes mal anders ist, ist klar. Aber das ist doch kein Problem, da sich ja offensichtlich der Fenstertitel nicht ändert. Also hast du schon mal das Handle des übergeordneten Fensters. Dann klannst du dir mit getDlgItem doch das Handle des Kindfensters holen. Ich verstehe nicht, warum du das Parent brauchst, wenn du doch schon das Child gefunden hast.
Und was macht handlefromid? Kölingt so, als wenn es genau das selbe wäre wie GetDlgItem. Wenn dem so ist, dann drehst du dich hier:
Delphi-Quellcode:
einmal im Kreis: ERrst hilst du dir das handle des Childfensters, dann des Elternfensters und vom Elternfenster wirde das handle des gleichen Kindfensters. Was soll das?
handle := handlefromid(hwnd,5191);
parenthandle:=getparent(handle) ; handle:=getdlgitem(parenthandle,5191); |
Re: Text aus Drittprogramm auslesen
Hi
:wall: :wall: :wall: irgendwan sollte man auch mal Pause machen...
Delphi-Quellcode:
das reicht natürlich aus...
procedure TForm1.Button1Click(Sender: TObject);
var hwnd, handle, parenthandle: thandle; buffer: array[0..1024] of Char; begin hWnd := FindWindow(nil, 'Globalserver - Desktop Edition by Omega Research'); label1.caption:='FindwindowHandle '+inttostr(hwnd); handle := handlefromid(hwnd,5191); label2.caption:='HandlefromID '+inttostr(handle); sendmessage(handle,WM_gettext,sizeof(buffer),Integer(@buffer)); label1.Caption:='Status:'+string(buffer); end; 'HandelfromID' ist eine function die ich hier im Board mal gefunden habe, die anhand der ControlID den Handle ermittelt getdlgitem ging aber nicht - keine ahnung was hier der Unterschied zu HandlefromID ist... Tschüss und nochmals Danke Ralf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz