Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Feb 2010
Das ist 'ne Standardmeldung, welche eintritt, wenn Bytes nicht gelesen/geschrieben werden können ... was hier beim letzen und auch rein zufällig beim einzigen Byte passiert.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Feb 2010
Pointer($55) kann nicht stimmen, da einem Programm im Usermode kein Zugriff auf die 64 KB gewährt sind.
Falls du die $55 als Byte schreiben willst, dann muß dieses in eine Variable oder in einen anderen Puffer und dann gibst du den Zeiger auf diesen Puffer dort an.
Egal, ein Pointer wäre 4 Byte und demnach könnte man davon auch 1 Byte schreiben,
aber hier zeigt der Pointer auf einen...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Feb 2010
Siehst du, und schon haben wir die Erklärung für deine Frage. :zwinker:
Heißt also, daß entweder dwProcID oder Pointer($002C3C84) nicht stimmt
oder daß dein Programm nicht genügend Rechte hat, um Lesen zu dürfen.
Aber mal sehn, ob man eine bessere Fehlermeldung rausbekommt, als dein nichtssagendes "Kann Speicher nicht lesen":
if not ReadProcessMemory(dwProcID, Pointer($002C3C84), @Buf,...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Feb 2010
Ließt ReadProcessMemory überhaupt was ... was sagt dessen Result und was sagt dwBytes?
Sicher daß die Adresse $002C3C84 stimmte?
...