Probleme bei einer Funktion in einer Gui die eine Gui schließen soll aber nicht macht

  • Dann habe ich deinen Post vorher falsch verstanden :MyFault:

    EDIT:

    Ich habe nocheinmal viel am Code getan und er schreibt immernoch die 5 in die beiden felder :(

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>
    #Include <Misc.au3>
    #Region ##Festgelegte Variablen
    #RequireAdmin
    #EndRegion ##Variablen
    #Region ##Gui
    $Form1 = GUICreate("Silkroad Starter", 516, 397, 552, 286)
    Opt("GuiOnEventMode",1)
    Opt("MustDeclareVars",0 )
    $PageControl1 = GUICtrlCreateTab(8, 8, 500, 336)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    GUISetOnEvent($GUI_EVENT_CLOSE, "beenden")
    #EndRegion ##Gui
    #Region ##Angaben
    $Account = GUICtrlCreateTabItem("Account")
    $ID = GUICtrlCreateInput("", 24, 72, 121, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $PW = GUICtrlCreateInput("", 24, 104, 121, 22,0x0020)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $SROPfad = GUICtrlCreateInput(" ", 24, 136, 121, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    #EndRegion ## Angaben
    #Region ##Autoeintrag SROpfad
    $reg = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Joymax\Silkroad", "InstallPath")
    If $reg <> " " Then GUICtrlSetData ($SROPfad,$reg)
    #EndRegion ##Autoeintrag SROpfad
    #Region ##Angaben Label
    GUICtrlCreateLabel("ID", 160, 72, 13, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateLabel("PW", 160, 104, 20, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateLabel("SROPfad", 160, 136, 48, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    #EndRegion ## Angaben Label
    #Region ##Buttons seite 1
    $Start = GUICtrlCreateButton("Starten", 256, 88, 99, 49, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($Start,"Start") ;done /buggy <<---------------
    $Bug = GUICtrlCreateButton("Bugreport", 400, 304, 99, 33, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($Bug,"bug") ;done
    $Group1 = GUICtrlCreateGroup("Account Daten", 16, 56, 209, 113)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $hide = GUICtrlCreateButton("Client Verstecken", 16, 312, 99, 25, 0)
    GUICtrlSetOnEvent ($hide,"hide") ;done
    $show = GUICtrlCreateButton("Client Zeigen", 120, 312, 99, 25, 0)
    GUICtrlSetOnEvent ($show,"show") ;done
    $silkexe = GUICtrlCreateButton("SROPfad suchen", 16, 170, 99, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($silkexe,"srofolder") ;done
    $save = GUICtrlCreateButton("save", 255, 312, 50, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($save,"save") ;done
    $load = GUICtrlCreateButton("load", 305, 312, 50, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetOnEvent ($load,"load") ;done
    #EndRegion ##Buttons seite 1
    #Region ##Buttons seite 2
    $optionen = GUICtrlCreateTabItem("Optionen")
    $enterdruecken = GUICtrlCreateCheckbox("Enterdrücken", 32, 72, 15, 17)
    GUICtrlCreateLabel ("Enterdrücken", 48, 74, 177,17)
    $Client = GUICtrlCreateCheckbox("Client verstecken", 32, 96, 15, 17)
    GUICtrlCreateLabel ("Client verstecken",48,98,177,17)
    $Restart = GUICtrlCreateCheckbox("", 32, 120, 15, 17)
    GUICtrlCreateLabel ("DC -> Clientrestart", 48, 122, 177,17)
    ;GUICtrlSetOnEvent ($Restart,"restart")
    $slowpc = GUICtrlCreateCheckbox("", 32, 144, 15, 17)
    GUICtrlCreateLabel ("Langsamer PC", 48, 146, 177, 17)
    $ecsro = GUICtrlCreateCheckbox("", 32, 168, 15, 17)
    GUICtrlCreateLabel ("ECSRO Autopotter starten "&@LF&"(Nur wenn der Autopotter im selben Verzeichnis ist)",48,170,257,47) ;<------------
    GUICtrlSetOnEvent ($ecsro,"ecsro") ;done /buggy
    #EndRegion ##Buttons seite 2
    #Region ##Buttons seite 3
    $links = GUICtrlCreateTabItem("Links")
    $JMHP = GUICtrlCreateButton("Joymax Homepage", 192, 192, 123, 33, 0)
    GUICtrlSetOnEvent ($JMHP,"JMHP") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $JMBAN = GUICtrlCreateButton("Joymax Banliste", 192, 136, 123, 33, 0)
    GUICtrlSetOnEvent ($JMBAN,"JMBAN") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $FORUM = GUICtrlCreateButton("Silkroad Online Forum", 192, 80, 123, 33, 0)
    GUICtrlSetOnEvent ($FORUM,"FORUM") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $UPDATE = GUICtrlCreateButton("Updates", 192, 248, 123, 33, 0)
    GUICtrlSetOnEvent ($UPDATE,"UPDATE") ;done
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    $exit = GUICtrlCreateButton("Exit", 350, 360, 75, 25, 0)
    GUICtrlSetOnEvent ($exit,"beenden") ;done
    $hilfe = GUICtrlCreateButton("Hilfe", 432, 360, 75, 25, 0)
    GUICtrlSetOnEvent ($hilfe,"hilfe") ;done
    GUISetState(@SW_SHOW)

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

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

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

    Case $Form1
    EndSwitch
    WEnd
    #EndRegion ##Buttons seite 3

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

    #Region ##Functions
    Func slow ()

    EndFunc
    Func srofolder ()
    $SROregPfad = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Joymax\Silkroad", "InstallPath")
    If @error Then
    $actualsropath = FileSelectFolder("Wähle den Ordner aus in dem Silkroad installiert ist:", @HomePath, 0)
    RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Joymax\Silkroad", "InstallPath","Reg_SZ",$actualsropath)
    If @error Then
    GUICtrlSetData($SROPfad, "Silkroad not found.")
    Else
    GUICtrlSetData ($SROPfad,$actualsropath)
    EndIf
    Else
    GUICtrlSetData($SROPfad, $SROregPfad)
    EndIf
    EndFunc
    Func Start()
    GUICtrlRead($SROPfad)
    Run (GUICtrlRead($SROPfad))
    GUICtrlRead ($ID)
    GUICtrlRead ($PW)
    $handle = WinGetHandle ("SRO_Client")
    Select
    Case _GUICtrlButton_GetCheck($slowpc) = $BST_CHECKED
    Sleep (15000)
    Case Not _GUICtrlButton_GetCheck($slowpc) = $BST_CHECKED
    Sleep (10000)
    EndSelect
    Controlsend ($handle,"","Edit1","{TAB}{TAB}")
    Sleep(1000)
    ControlSend ($handle,"","Edit1",$ID)
    Sleep(1000)
    Controlsend ($handle,"","Edit2","{TAB}")
    ControlSend ($handle,"","Edit2",$PW)
    If $enterdruecken = 1 Then
    $dll = DllOpen("user32.dll")
    Do
    ControlSend ($handle,"","Edit3","{ENTER}")
    Sleep (700)
    Until _IsPressed ("23",$dll)
    DllClose($dll)
    If WinExists ("SRO_Client") = 0 Then
    Send ("{END}")
    EndIf
    EndIf
    Select
    Case _GUICtrlButton_GetCheck ($Client) = $BST_CHECKED
    WinSetState ($handle,"",@SW_MINIMIZE)
    EndSelect
    EndFunc
    Func UPDATE ()
    $oIE = _IECreate ("http://semtexunion.se.funpic.de/wordpress/?p=6")
    EndFunc
    Func FORUM ()
    $oIE = _IECreate ("www.silkroadonline.de")
    EndFunc
    Func JMHP ()
    $oIE = _IECreate ("www.silkroadonline.net")
    EndFunc
    Func JMBAN ()
    $oIE = _IECreate ("http://www.joymax.com/silkroad/Silkroad_Front.jmx?workURL=http://silkroadcp.joymax.com/notarget/punishment/punishment_list.asp?")
    EndFunc
    Func bug ()
    $oIE = _IECreate ("http://www.silkroadonline.de/index.php?form=Mail&userID=25108")
    EndFunc
    Func save ()
    IniWrite("settings.ini","char","Acc-name",GUICtrlRead($ID))
    IniWrite("settings.ini","char","Passwort", GUICtrlRead($PW))
    IniWrite("settings.ini","char","Exe",GuiCtrlRead($SROPfad))
    IniWrite("settings.ini","char","Autopotter",GUICtrlRead($ecsro))
    EndFunc
    Func load ()
    $1=IniRead("settings.ini","char","Acc-name", GUICtrlRead($ID))
    $2=IniRead("settings.ini","char","Passwort", GUICtrlRead($PW))
    $3=IniRead("settings.ini","char","Exe", GUICtrlRead ($SROPfad))
    $4=IniRead("settings.ini","char","Autopotter", GUICtrlRead($ecsro))
    GUICtrlSetData($ID,$1)
    GUICtrlSetData($PW,$2)
    GUICtrlSetData($SROPfad,$3)
    GUICtrlSetData($ecsro,$4)
    EndFunc
    Func ecsro ()
    If WinActive ("[CLASS:CLIENT]") = 1 Then
    ShellExecute ("autopotion.exe")
    ElseIf WinActive ("[CLASS:CLIENT]") = 0 Then
    MsgBox (64,"Achtung!","Silkroad ist nicht gestartet" &@LF& "Das tool wird nicht gestartet")
    EndIf
    EndFunc
    Func beenden ()
    Exit
    EndFunc
    Func Optionenende ()
    GUIDelete ( "Hilfe" )
    EndFunc
    Func hide ()
    $handle = WinGetHandle ("[CLASS:CLIENT]")
    WinSetState ($handle,"",@SW_HIDE)
    EndFunc
    Func show ()
    $handle = WinGetHandle ("[CLASS:CLIENT]")
    WinSetState ($handle,"",@SW_SHOW)
    EndFunc
    Func hilfe ()
    Opt("GuiOnEventMode",1)
    $secondwindow = GUICreate ("Hilfe",400,200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Optionenende")

    GUICtrlCreateLabel ("ID: Bitte gib dort die ID deines Chars ein",20,10,250,20)
    GuiCtrlcreatelabel ("PW: Bitte gib dort das Passwort deines Chars ein",20,30,250,20)
    GUICtrlCreateLabel ("SROPfad: Bitte gib dort den Pfad zum SilkroadClienten ein "&@LF&"(mit silkroad.exe oder loader.exe)",20,50,300,50)
    GUICtrlCreateLabel ("Enterdrücken: Das Tool drückt automatisch EINMAL! die ENTER taste",20,85,250,50)
    GUICtrlCreateLabel ("Client Verstecken: Das Tool versteckt nach der eingabe der Daten den Clienten",20,120,250,50)
    GUICtrlCreateLabel ("Langsamer PC: Das Tool wartet länger auf den Clienten",20,155,250,30)
    GUISetState(@SW_Show)
    While 0
    sleep(1000)
    WEnd
    EndFunc
    #EndRegion ##Functions

    [/autoit]

    Edit: Was habe ich genau falsch gemacht das nurnoch die 5 herauskommt? Ich bin nocheinmal den code durchgegangen und konnte keine stelle sehen wo vielleicht diese Variablen überschrieben werden

    2 Mal editiert, zuletzt von TheBigX (13. Juni 2009 um 23:03)

  • Hallo TheBigX,

    so funktioniert es

    [autoit]

    ControlSend ($handle,"","Edit2",GuiCtrlRead($PW))

    [/autoit]

    $PW ist eine Variable die die ControlID enthält, mit GuiCtrlRead(ControlId) erhälst du den Inhalt,

    mfg (Auto)Bert

  • Ein dickes danke von mir :)
    Auf diese Tatsache wäre ich bestimmt erst in Tagen gekommen

    • Offizieller Beitrag

    Genau das hab ich doch im Post #17 schon geschrieben!

  • Tschuldigung da war ich wohl mehr als Blind :(

    Ich habe wieder ein problem welches ich auch schon versucht habe selbst zu lösen
    Diese "funktion" soll solange die ENTER taste drücken bis ich Ende drücke (die taste)
    Keine Phanik damit will ich den einloggvorgang nicht automatisieren...das hat auch nichts mit meinem tool zu tun, sondern soll eine dateiüberschreib abfrage von windows beim installieren eines Font-Packs absegnen.

    Wie dieses Fenster genau heisst weiss ich noch nicht da ich noch keine Datei kopiert habe und das kann ich später immernoch ändern
    und so muss halt erstmal das notepad herhalten

    EDIT:

    Ist denke ich schon zu spät :P

    Trotzdem danke an die die sich es angeguckt haben ^^

    Ich konnte es selbst dann doch fixen

    Einmal editiert, zuletzt von TheBigX (14. Juni 2009 um 02:32)