Einzelnen Beitrag anzeigen

Xerogon

Registriert seit: 28. Jan 2010
27 Beiträge
 
#1

ReadProcessMemory -> Problem

  Alt 15. Okt 2010, 12:09
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
  Mit Zitat antworten Zitat