Suche in einem fremden Prozess (ca. 400MB Speicher) nach einem Integer-Wert.
Besser gesagt beim 1. Mal durchsuchen soll eine Liste mit den Treffern erstellt werden und beim erneuten durchsuchen in diesen Ergebnissen soll diese auf 1 Möglichkeit reduziert werden.
Gibt es dafür eine elegantere (oder schnellere) Variante als alles mit der folgenden Funktion abzugrasen?:
Delphi-Quellcode:
function LeseSpeicher(adresse,size:integer):integer;
var p : pointer;
puffer : array[0..1] of DWord;
BytesRead: DWord;
ProcessId,ThreadId,HandleWindow : integer;
begin
p := ptr(adresse); //Adresse umwandeln:
ThreadId := GetWindowThreadProcessId(ProgrammHandle,@ProcessId); //ProgrammHandle = globale Variable
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
ReadProcessMemory( HandleWindow, p , @puffer[0], size, BytesRead );
closehandle(HandleWindow);//close
LeseSpeicher := Puffer[0];
end;//von LeseSpeicher