Pointer in Script einbauen gefailt ?

07/02/2012 14:46 Copex™#16
wie würde das mit einer Checkbox aussehen ?
Quote:
Case $Button1
$Open = _MemoryOpen ($Pid)
$WriteValue = _MemoryPointerWrite ($Baseaddresse, $Open, $Offset, "Dein Wert", "Datentyp des Wertes ; Ist nicht unbedingt erzwingend")
if @error = False Then
MsgBox (0,"","Wert wurde erfolgreich geändert!")
EndIf
$Close = _MemoryClose ($Open)

EndSwitch
WEnd
07/02/2012 15:35 -STORM-#17
Statt
Code:
Case $Button1
nimm
Code:
If GUICtrlRead($Checkbox1) = 1
Die Checkbox solltest du mit Koda erstellen können.
Da das in der While Schleife steht, wird somit der Wert "eingefroren", indem er einfach immer wieder überschrieben wird.
Die Msgbox solltest du lieber rausnehmen, sonst wird das Script an der Stelle immer pausiert, bis du OK geklickt hast.

Wenn du ernsthaft nen Trainer machen willst, solltest du dir aber erstmal Grundlagentutorials anschauen, statt das so zu kopieren.

An folgender Stelle hast du scheinbar übersehen, dass in die Vorlage noch Wert und Typ eingefügt werden müssen:
Code:
$WriteValue = _MemoryPointerWrite ($Baseaddresse, $Open, $Offset, "Dein Wert", "Datentyp des Wertes ; Ist nicht unbedingt erzwingend")
07/02/2012 17:04 Copex™#18
Hab da eingebaut ^^ nur nicht in dem den ich hier gepostet habe und die grundlagen hab ich auch drauf nur hatte ich keine Zeit ^^.
07/02/2012 17:21 Logtetsch#19
Hab hier mal eine schnelle Version mit der Checkbox gemacht. Es gibt schönere Versionen, aber für einen Anfänger sollte es ausreichen.

PHP Code:
#region Abfrage
if ProcessExists ("metin2client.exe") = False Then
        MsgBox 
(64,"Error","Metin2 konnte nicht gefunden werden! Bitte starten sie Metin2")
        Do
            
Sleep (200)
        
Until ProcessExists ("metin2client.exe") = True
EndIf
#endregion

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Pointer.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Vorlage"18064192124)
$checkbox1 GUICtrlCreateCheckbox("Change"45207525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#region Offsets
Global $Offset[3] = [00x4440x25E]
#endregion

#region Baseaddresse herausfinden
Global $Pid ProcessExists ("metin2client.exe")
Global 
$Open _MemoryOpen ($Pid)
Global 
$Baseaddresse _MemoryModuleGetBaseAddress ($Pid"metin2client.exe") + 0x0002B9D0
Global $Close _MemoryClose ($Open)
#endregion

$Open _MemoryOpen ($Pid)

While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

EndSwitch

#region Hack mit checkbox / Wichtig ist, dass der Code zwischen dem EndSwitch und WEnd drinne ist.
if GUICtrlRead ($checkbox1) = 1 Then

    $WriteValue 
_MemoryPointerWrite ($Baseaddresse$Open$Offset"Dein Wert""Datentyp des Wertes ; Ist nicht unbedingt erzwingend")
    if @
error Then
        MsgBox 
(0,"","Wert konnte nicht geändert werden!")
    Else
        
MsgBox (0,"","Wert wurde erfolgreich geändert!")
    EndIf

EndIf
#endregion

WEnd 
07/02/2012 20:21 Lawliet#20
Quote:
Originally Posted by -STORM- View Post
Aus
Code:
Case $Button1
wird
Code:
Case GUICtrlRead($Checkbox1)
Die Checkbox solltest du mit Koda erstellen können.
Da das in der While Schleife steht, wird somit der Wert "eingefroren", indem er einfach immer wieder überschrieben wird.
Die Msgbox solltest du lieber rausnehmen, sonst wird das Script an der Stelle immer pausiert, bis du OK geklickt hast.

Wenn du ernsthaft nen Trainer machen willst, solltest du dir aber erstmal Grundlagentutorials anschauen, statt das so zu kopieren.

An folgender Stelle hast du scheinbar übersehen, dass in die Vorlage noch Wert und Typ eingefügt werden müssen:
Code:
$WriteValue = _MemoryPointerWrite ($Baseaddresse, $Open, $Offset, "Dein Wert", "Datentyp des Wertes ; Ist nicht unbedingt erzwingend")
Wenn sich das "Case" auf GuiGetMsg() bezieht, ist Case $Button1 schon richtig.
07/02/2012 22:32 -STORM-#21
Quote:
Originally Posted by Lawliet! View Post
Wenn sich das "Case" auf GuiGetMsg() bezieht, ist Case $Button1 schon richtig.
Die Antwort bezog sich auf
Quote:
Originally Posted by °Elite_Shooter View Post
wie würde das mit einer Checkbox aussehen ?
07/02/2012 23:26 Lawliet#22
Wäre auch falsch, da eine CheckBox entweder 1 oder 6 (?) zurück gibt.
07/03/2012 16:16 -STORM-#23
Quote:
Originally Posted by Lawliet! View Post
Wäre auch falsch, da eine CheckBox entweder 1 oder 6 (?) zurück gibt.
Mh, stimmt.
07/04/2012 10:26 VisionEP1#24
Eine Checkbox gibt
1 oder (true)
4 zurück (false)
greez
07/04/2012 17:39 KDeluxe#25
"true" nimmt alle Werte außer 0 an, sowohl der ausgewählte Zustand (1), als auch der nicht ausgewählte Zustand (4) werden als true interpretiert. "false" nimmt nur den Wert 0 an.

Die drei Werte, die eine Checkbox annehmen kann, sind 1 (checked), 2 (indeterminate) und 4 (unchecked).

Folgende Abfrage trifft immer ein:
Code:
GUICreate("", 100, 25)
$Checkbox = GUICtrlCreateCheckbox("Blaaaaaa", 5, 5, 90, 17)
GUISetState()

Do
	$nMsg = GUIGetMsg()
	If $nMsg == $Checkbox Then
		If GUICtrlRead($Checkbox) Then MsgBox(0, "", "Checkbox ist ausgewählt")
	EndIf

	Sleep(10)
Until $nMsg == -3