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:
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;
Nachdem ichin diese Beitrag hingewiesen Wurde das ich für mein anliegen einen neuen Beitrag auf machen solle tue ich dies hiermit.
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?
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.