Offset in Label wiedergeben

  • Hallo Com,

    Ich möchte ein bestimmtes offset in einem label wiedergeben lassen

    wie kann ich dieses machen?

    Bis jetzt habe ich:

    Spoiler anzeigen
    [autoit]


    Global $ID=_MemoryOpen(0x0000043C)
    Global $Data=0x01AA730D

    [/autoit] [autoit][/autoit] [autoit]

    AdLibRegister("data")

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("Test", 400, 300, 300, 100)
    $Label = GUICtrlCreateLabel("Test-Augabe-Label", 10, 10, 150, 17)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func data()
    GUICtrlSetData($Label, _MemoryRead($Data, $ID, 'dword'))
    EndFunc

    [/autoit]
  • Meine Güte ...
    Guck dir mal die MemoryOpen() an !

    [autoit]

    _MemoryOpen(ProcessExists("YourProcess"))

    [/autoit]


    ausserdem, was brauchst du in deinem RAM ?
    Wäre nett wenn du uns sagst wozu

    PS: Es sollte jetzt klappen ;)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • :P
    Es gibt aber Memory Tutorials
    Aber danke für die erinnerung, ja das waren noch zeiten, an die ich mich nicht zurück erinnern möchte :D

    Also, _MemoryOpen() wird mit der Process ID gecallt

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Probiere das mal irgendwie so..

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $hGUI = GUICreate("Test", 400, 300, 300, 100)
    $Label = GUICtrlCreateLabel("", 10, 10, 150, 17)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd
    AdLibRegister("data",2000)
    Func data()
    Local $Data = 0x01AA730D
    $hMemOpen = _MemoryOpen(0x0000043C)
    $vMemReadCur = _MemoryRead($Data, $hMemOpen)
    GUICtrlSetData($Label,$vMemReadCur)
    _MemoryClose($hMemOpen)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc
    Func _MemoryRead($vAddress, $vHandle, $vType = 'dword')
    Local $vBuffer = DllStructCreate($vType)
    DllCall($vHandle[0], 'int', 'ReadProcessMemory', 'int', $vHandle[1], 'int', $vAddress, 'ptr', DllStructGetPtr($vBuffer), 'int', DllStructGetSize($vBuffer), 'int', '')
    If Not @error Then Return DllStructGetData($vBuffer, 1)
    EndFunc ;==>_MemoryRead

    [/autoit] [autoit][/autoit] [autoit]

    Func _MemoryClose($vHandle)
    If IsArray($vHandle) Then
    DllCall($vHandle[0], 'int', 'CloseHandle', 'int', $vHandle[1])
    DllClose($vHandle[0])
    EndIf
    EndFunc ;==>_MemoryClose
    Func _MemoryOpen($vPID, $vDesiredAccess = 0x00000010, $viHandle = 1)
    Local $vHandle[2] = [DllOpen('kernel32.dll')]
    Local $vOpenProcess = DllCall($vHandle[0], 'int', 'OpenProcess', 'int', $vDesiredAccess, 'int', $viHandle, 'int', $vPID)
    If @error Then DllClose($vHandle[0])
    $vHandle[1] = $vOpenProcess[0]
    Return $vHandle
    EndFunc ;==>_MemoryOpen

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_SM_GUICtrlCreateLabel

    [/autoit] [autoit][/autoit] [autoit][/autoit]