Hallo nochmals.
Danke für die Antwort, ich habe nun mal den Code vom hier veröffentlichten Trainer für NFSU2 angeschaut und die Routinen ausprobiert...
Also, Ausgangslage:
Ich habe ein Form mit 2 Edits und 2 Buttons.
Wenn ich auf Button1 klicke, will ich, dass der Wert der Adresse 9EA1D0 gelesen und in Edit1.Text geschrieben wird.
Meine Funktion:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
lRead, lHandle: Cardinal;
lBuf: PChar;
begin
if fRunning then
begin
lBuf := '';
lHandle := FindWindow('TForm1',fAppName);
GetWindowThreadProcessId(lHandle,@lHandle);
lHandle := OpenProcess(PROCESS_ALL_ACCESS,False,lHandle);
ReadProcessMemory(lHandle,Ptr($9EA1D0),lBuf,1,lRead);
Edit1.Text := lBuf;
CloseHandle(lHandle);
end;
end;
Und das zweite:
Ich will dass der (Zahlen-)Wert, welcher in Edit2.Text steht, in diese Adresse geschrieben wird, wenn ich auf Button2 klicke.
Meine Funktion:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
lWrite, lHandle: Cardinal;
lBuf: Pointer;
begin
if fRunning then
begin
if trim(Edit2.Text) <> '' then
begin
lBuf := Pointer(StrToInt(Edit2.Text)); // hier schreibt er mir immer HexWerte in lBuf
lHandle := FindWindow('TForm1',fAppName);
GetWindowThreadProcessId(lHandle,@lHandle); //Get ProcessID and ignore ThreadID
lHandle := OpenProcess(PROCESS_ALL_ACCESS,False,lHandle); //Get ProcessHandle
WriteProcessMemory(lHandle,Ptr($9EA1D0),lBuf,4,lWrite); // ich denke mal 4 weil Integer = 4 Bytes ?
CloseHandle(lHandle);
end;
end;
end;
Ich habe jetzt jenste Dinge rumprobiert und bin immer auf recht verwirrende Resultate gestossen... Ich frage mich nun, was genau mache ich falsch? Kann mir jemand bitte helfen? Würde das gerne heute noch fertig kriegen. \: