Guten Abend,
ich habe vor einigen Tagen eine Prozedur geschrieben, die mithilfe von
WriteProcessMemory Werte in einem Spiel verändert.
Doch nach kleinen Veränderungen funktioniert diese leider nicht mehr, und ich finde den Fehler einfach nicht...
Die Adresse ist statisch, werden beim Neustart des Spiels
nicht verändert.
Hier der Code, ich hoffe jemand findet den Fehler
Delphi-Quellcode:
const
WindowTitle = 'SPIEL-NAME';
Address = $00431CA8;
NumberOfBytes = 1;
procedure TForm1.setlives(lives: integer);
begin
if DX_running then // wenn das Spiel läuft
begin
GetMem(buf,1);
ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId);
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
try
buf^ := Chr(Lives);
WriteProcessMemory(HandleWindow,ptr(Address), buf, NumberOfBytes, write);
finally
FreeMem(buf);
closehandle(HandleWindow);
end;
end;
end;