![]() |
ReadProcessMemory
Guten Tag,
seit ungefähr 4 Monaten beschäftige ich mich mit Delphi. Ich habe bereits ein paar kleine Tools erstellt, was für mich keine Probleme darstellte. Doch nun bin ich an einem Punkt angelangt, wo ich nicht mehr weiter weiß. Seit zwei Tagen versuche ich das Problem zu lösen, was allerdings nicht klappt und mich hier her bringt. Hier findet mal alle Adressen: ![]() Ich möchte Werte aus dem RAM auslesen. Zitat:
Delphi-Quellcode:
Das funktioniert auch wunderbar.
function Get_Player_Position: String;
var ASize: Integer; h: DWORD; Val: NativeUInt; WinName, PId, WinHandle: Integer; begin Result := ''; WinName := FindWindow(nil,'GTA:SA:MP'); GetWindowThreadProcessId(WinName,@PId); WinHandle:= OpenProcess(PROCESS_ALL_ACCESS,False,PId); if WinHandle <> 0 then begin p := 0; h := 0; Val := 0; ASize := 4; ReadProcessMemory(WinHandle, Pointer($B7CE50), @h, ASize, Val); Result := IntToStr(h); end; CloseHandle(WinHandle); end; Nun komme ich zu dem Punkt, an dem ich nicht mehr weiter weiß. Zitat:
Delphi-Quellcode:
function Get_Player_Position: String;
var p, ASize: Integer; XPos, YPos, ZPos: DWORD; Val: NativeUInt; WinName, PId, WinHandle: Integer; begin Result := ''; WinName := FindWindow(nil,'GTA:SA:MP'); GetWindowThreadProcessId(WinName,@PId); WinHandle:= OpenProcess(PROCESS_ALL_ACCESS,False,PId); if WinHandle <> 0 then begin p := 0; XPos := 0; YPos := 0; ZPos := 0; Val := 0; ASize := 4; ReadProcessMemory(HandleWindow, Pointer($B6F5F0), @p, ASize, Val); ReadProcessMemory(HandleWindow, Pointer(p + $14), @CPed, ASize, Val); ReadProcessMemory(HandleWindow, Pointer(CPed + $30), @XPos, ASize, Val); ReadProcessMemory(HandleWindow, Pointer(CPed + $34), @YPos, ASize, Val); ReadProcessMemory(HandleWindow, Pointer(CPed + $38), @ZPos, ASize, Val); Result := Format('X: %d, Y: %d, Z: %d', [XPos, YPos, ZPos]); end; CloseHandle(WinHandle); end; XPos, YPos, ZPos sollten Koordinaten enthalten. Sie enthalten auch Koordinaten, jedoch die falschen, wobei das Vorzeichen stimmt. Ich habe mir auch schon andere etliche Threads, Hilfestellungen ect durchgelesen. Einer davon war beispielsweise dieser: ![]() zu kommen. Über Hilfe eurerseits würde ich mich sehr freuen. Mit freundlichen Grüßen Sync PS: Win 7 64 Bit - Delphi XE2 Pro Ich habe es auch schon auf einem 32 Bit System getestet. |
AW: ReadProcessMemory
Ich rate mal rein ins Blaue, dass deine Informationen falsch sind und es sich bei den Koordinaten um floats (Single) und keine DWords handelt.
|
AW: ReadProcessMemory
Oh man ja.. jetzt funktioniert es wunderbar.
Sowas als erster Beitrag. Erschlagt mich. Naja danke. Mit freundlichen Grüßen Sync |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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