Fehlerhafter Rückgabewert von _MemoryPointerRead()

05/09/2012 20:00 Tobolobo#1
Hallo,
ich stehe mal wieder vor einem Problem, das ich nicht schaffe, selbst zu beheben. Ich bin ganz neu in dem Gebiet Adressen, Pointer, usw. Ich habe mir jetzt mal ein kleines Script gemacht, das in CSS den aktuellen "Kontostand" ausliest. Alles geht soweit, bis auf den Rückgabewert von der Funktion _MemoryPointerRead(). Der Index [0] gibt die Adresse, auf die der Pointer zeigt. [1] Ist der Wert, den diese Adresse hat. [1] ist bei mir immer 0, da die Adresse im Index [0] immer fehlerhaft ist. Sie ist immer: "0x00000000" und dann die richtige Adresse...(z. B. 0x00000000128B2A10). Ich weiß aber nicht, wo der Fehler in der Pointer.au3 entsteht. Als Vorzeitige Lösung habe ich jetzt dieses verwendet:
Code:
$PID = ProcessWait("hl2.exe")
$Mem = _MemoryOpen($PID)
Dim $offset[2]
$offset[0] = "0"
$offset[1] = Dec("D68")

;auslesen
$Add = _MemoryPointerRead("0x223B6D08", $Mem, $offset)
$AddVal = _MemoryRead("0x" & Hex($Add[0]), $Mem)

;schreiben
$Add = _MemoryPointerRead("0x223B6D08", $Mem, $offset)
$AddMem = _MemoryWrite("0x" & Hex($Add[0]), $Mem, $Money)
Ich bin mir zu 100% sicher, dass ich die richtigen Adressen habe, aber ich glaube (habs noch nicht Probiert) bei Multilevel Pointern wird der Fehler zu einem großen Problem. Ich habe schon daran gedacht, die Adresse beim Rückgabewert einfach mit Hex() einzustellen, aber dann wird der Wert trotzdem nicht ausgelesen. Was ist an meiner Pointer.au3 falsch?


Vielen Dank im Voraus,
Tobolobo.

Okay, Problem hat sich gelöst. Man muss AutoIT 3.3.6.1 installieren, dass es funktioniert.
Kann geclosed werden.