der komplette Programmspeicher umfasst direkt nach dem Start 400MB. Also ne ganze Menge Asche. Bisher nutz ich folgenden Code um im Speicher rumzulesen
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
Gibt es da noch schnellere Variante.
Der andere Knackpunkt ist, dass alle Variablen 0 sind beim Start.
Die Variablen können einen Wert von 1 bis 7 annehmen.
Ich könnte den User bitten einen Key zu drücken der die erste Variable auf 7 legt, dann die Zweite auf 6, die Dritte auf 5 usw. aber nach Möglichkeit möchte ich das umgehen.
Das Programm wurde in C++ geschrieben, welcher Compiler weiß ich jedoch nicht.
Globale Variablen kann ich mir auch nicht vorstellen, da es ein großes Programm ist und es ja so leicht schlechten Code gibt.