![]() |
Daten eines Fremden Fensters auslesen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe eine internetseit erstellt auf der die Punkt von Spielen angezeigt werden. Jetzt scheidere ich aber am Auslesen der Daten aus einer Serveranwendung. Es handelt sich hierbei um Civ 4. Das Fenster (siehe Bild) enthält alle Daten welche ich auslesen möchte.
Wieviele Spieler Die Namen Der Ping Und wer dran ist Ich habe hier im Forum folgenden Quelltext gefunden.
Delphi-Quellcode:
Nachdem ichin diese Beitrag hingewiesen Wurde das ich für mein anliegen einen neuen Beitrag auf machen solle tue ich dies hiermit.
procedure TForm1.Button1Click(Sender: TObject);
var hMain : DWORD; hSub : DWORD; iLen : integer; pText : PChar; begin hMain := FindWindow(NIL,chr(039)+'meineeiner'+chr(039)+' successfully saved'+chr(034)); if hMain = 0 then begin ShowMessage('Meldung nicht gefunden'#13#10+ SysErrorMessage(GetLastError)); Exit; end; hSub := FindWindowEx(hMain,0,'EDIT',nil); if hMain = 0 then begin ShowMessage('Inhalt nicht gefunden'#13#10+ SysErrorMessage(GetLastError)); Exit; end; iLen := SendMessage(hSub,WM_GETTEXTLENGTH,0,0)+1; if iLen = 0 then begin ShowMessage('Kein Inhalt'); Exit; end; pText := AllocMem(iLen); try if SendMessage(hSub,WM_GETTEXT,wParam(iLen),lParam(pText)) = 0 then begin ShowMessage('0 Zeichen kopiert'); end else begin ShowMessage(pText); end; finally FreeMem(pText,iLen); end; end; Die Procedure gibt nur die Meldung aus "0 Zeichen" gefunden. Ich denke es liegt daran das es keine Texte in memoboxen sind. Die Chat dialoge kann ich auslesen. Wie könnte ich denoch an die Daten kommen?
Delphi-Quellcode:
hSub := FindWindowEx(hMain,0,'EDIT',nil);
Ich weis das ich das EDIT durch z.B. Button ersetzen muss aber ich weis nicht was für eine Form die Liste hat. Und wo ich eine übersicht finde wsa man alles eingeben kann. PS: Ich habe bereits schon versuch die RAM Adressen mit einem Hexeditor auszulesen konnte jedoch nur die Punktzahl finden alle anderen Daten sind nicht zu finden. |
Re: Daten eines Fremden Fensters auslesen
Hallo
Lade meinen ![]() |
Re: Daten eines Fremden Fensters auslesen
Damit wird das ja vermutlich schon erledigt sein, aber der Vollständigkeit halber der nicht angegebene Crosspost:
![]() |
Re: Daten eines Fremden Fensters auslesen
Liste der Anhänge anzeigen (Anzahl: 1)
Leider habe ich es nocht nicht ganz gelöst.
Ich schaffe es jetzt mit hilfe von Winspy und desse generierten code den Handle des Fensters zu ermiteln. Auch weis ich jetzt das die objekte "Static" und "Button" sind. Die Handle änderen sich logischer weise bei jedem starten des Programmes. Und unter den Objekten gibt es für mich auch keinen Mathematischen zusammenhang. (Habe dies mehrfach überprüft, die Verhältnisse der einzelen Handles zu einander änderen sich leider auch. Anbei ein Bild von Winspy mit einer Beispielsauslesung. Das Problem ich möchte ja den inhalt zum Beispiel des ersten Buttons auslesen. Wie sage ich FindWindowEx das es genau diesen Button auslesen soll. Ich finde keine namen oder gleichbleibenden Wert den man Ansprechen kann. Fragen: 1) Wie kann ich ein bestimmtes Objekt auslesen ? |
Re: Daten eines Fremden Fensters auslesen
Sollten die Fensternamen nicht konstant sein, gibt es natürlich Probleme. Die Handles sind sowieso jedesmal anders, aber die werden ja mit FindWindow gesucht.
Dafür sollte WinSpy eigentlich auch den entsprechenden Delphicode generieren um ein spezielles Fenster / Control zu suchen in Delphi. |
Re: Daten eines Fremden Fensters auslesen
Die ermittlung des Fensternamens habe ich bereits gelöst. Dieser ist Dynamisch wird aber ausgelesen.
Leider geht das erzeugen des Quellcodes bei mir nur bei dem Haupfenster. So lese ich ja die Handle des Fensters aus. Das Problem ist das die Objekte wie Button und Static beim Codegenerieren nur zu einer Fehlermeldung (siehe Bild führen) Ich könnte ja auch über eine Schleife alle Button auslesen und dann auswerten aber. Der Befehl liest immer nur den ersten den er findet aus.
Delphi-Quellcode:
FindWindowEx(Der Handle des Fensters, ???,Art des Objektes, ???);
hSub := FindWindowEx(hMain,0,'EDIT',nil);
Was stelle ich an den stellen mit ??? finde keine Angaben. Die Delphi Hilfe kennt den Befehl nicht. |
Re: Daten eines Fremden Fensters auslesen
Zitat:
![]() ![]() Der zweite Parameter gibt an, dass ab einem bestimmten (bereits gefundenen) Kindfenster weitergesucht werden soll. Also so ähnlich wie bei PosEx. Und der letzte Parameter ist der Titel des Fensters. |
Re: Daten eines Fremden Fensters auslesen
Zitat:
also keiner der Beiden beschreibt welches z.B. "Edit" er auslesen soll. Aber er muss doch von irgenwo bekommen welches Edit er lesen soll. Ok danke erst mal, da werde ich mich doch erst noch etwas belesen müssen. Ist doch schwieriger als ich es mir gedacht hatte. |
Re: Daten eines Fremden Fensters auslesen
Da die keinen Titel oder so haben, musst du mit Hilfe des zweiten Parameters noch einmal weitersuchen, wenn du das erste gefunden hast z.B., denn die Reihenfolge bleibt gleich.
|
Re: Daten eines Fremden Fensters auslesen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz