Hi, ich hoffe ich bin hier in der richtigen Sektion
Also mein Problem ist, das ich bei Verwendung von ReadProcessMemory eine
Exception bekomme.
Delphi-Quellcode:
var
ThreadID, ProcessID: Integer;
WindowHWnd: HWnd;
write: Cardinal;
WindowHandle: THandle;
P: PChar;
//Variable für ReadProcessMemory
...
Procedure OpenMemory;
begin
While WindowHWnd = 0
do
begin
WindowHWnd := FindWindow(
nil, '
Spider Solitär');
//FensterHandle suchen
sleep(100);
end;
ThreadID := GetWindowThreadProcessID(WindowHWnd, @ProcessID);
//processID bestimmen
WindowHandle := OpenProcess(PROCESS_ALL_ACCESS, false, ProcessID);
//WindowHandle suchen
Writeln('
ThreadID: ' + IntToStr(ThreadID) + '
/ ' + '
ProcessID: ' + IntToStr(ProcessID) + '
/ ' + '
WindowHandle: ' + IntToStr(WindowHandle));
//sollte klar sein ;)
end;
Function ReadMemory: PChar;
begin
try
//Speicher reservieren
GetMem(p, SizeOf(P));
//Speicher auslesen --> Error
ReadProcessMemory(WindowHandle, Ptr($01324480), @P, SizeOf(P),
write);
//Aus gelesener Wert befindet sich nun in P, oder?
Result := P;
//Speicher freigeben + Handle schließen
finally
FreeMem(P);
CloseHandle(WindowHandle);
end;
begin
OpenMemory;
Writeln(ReadMemory);
//--> geht nicht
Readln;
end.
so, also bei der Funktion "Readmemory" stürzt er ab. Warum?
Mit WriteProcessMemory kann ich ohne Probleme arbeiten.
Danke