Memory handling

  • Hi Leute, ich hab ein Problem: Ich hab ein Spiel, aus dem ich eine bestimmte Adresse lesen will. Das zugehörige Fenster steht in $CoFenster[$i][2] und die stimmt auch. Ich hab auch die neue Memory.au3 eingebunden wie es auf autoit-wiki steht, aber wenn ich den Befehl _MemoryRead aufrufe, bringt er mir immer 0 als Ergebnis. Über ArtMoney sehe ich aber, daß genau an der Stelle 0x571534 mein Charaktername steht.

    Irgendwas mache ich falsch aber ich weiß nicht was. Hier mein Code:

    Code
    #include <Memory.au3> 
    ... 
    $mem = _MemoryOpen($CoFenster[$i][2]) 
    WinSetTitle($CoFenster[$i][2], "", _MemoryRead(0x571534, $mem, 'char[8]')) 
    _MemoryClose($mem)

    Hoffe mir kann einer helfen.

  • hmmm, ok, leuchtet mir ein, jetzt bräuchte ich nur noch die prozessnummer aus der fensternummer.

    hab die $CoFenster[$i][$2] so gemacht:

    Gibts da eine möglichkeit aus dem zweiten index von WinList() (= Fensternummer, die ich bei dem _MemoryRead() verwende) diese prozessid zu bekommen. danke vielmals

    Nachtrag - hab grade WinGetProcess gefunden, mal gucken obs damit geht.

    Also das geht auch scheinbar nicht:

    Code
    $mem = _MemoryOpen(WinGetProcess($CoFenster[$i][2])) 
    WinSetTitle($CoFenster[$i][2], "", _MemoryRead(0x571534, $mem, 'char[8]')) 
    _MemoryClose($mem)

    Arg geht doch - selber nen fehler reingehauen, den ich gerade im Forum selbst ausgebessert hab, vielen vielen dank

    2 Mal editiert, zuletzt von Schmuse (26. Juli 2008 um 15:49)