Func problem

  • Hallo Community.

    Ich habe einen kleinen Script gemacht.
    Der Script läuft wie geplant. Nur eine Sache kann ich nicht lösen.
    Schaut euch erstmal meinen Script an.

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=C:\Users\Alex\Desktop\Koda GUI's\Login Helper (new).kxf
    $Form1 = GUICreate("SA:MP Login Helper", 457, 413, 194, 128)
    GUISetBkColor(0xFFFFFF)
    $Picture = GUICtrlCreatePic("C:\Users\Alex\Desktop\gta.jpg", 0, 40, 457, 353)
    $Password = GUICtrlCreateLabel("Your password:", 16, 8, 116, 27)
    GUICtrlSetFont(-1, 11, 400, 0, "@Meiryo")
    $Input1 = GUICtrlCreateInput("YourPassword", 128, 8, 265, 21, $ES_PASSWORD)
    $Checkbox1 = GUICtrlCreateCheckbox("Enable", 400, 8, 65, 25)
    $MenuItem1 = GUICtrlCreateMenu("Menu")
    $About = GUICtrlCreateMenuItem("About", $MenuItem1)
    $Hotkeys = GUICtrlCreateMenuItem("Hotkeys", $MenuItem1)
    $Close = GUICtrlCreateMenuItem("Close", $MenuItem1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet ("{F1}","_password")
    HotKeySet ("{F2}","_pClose")

    Func _password ()
    Send ("{t}")
    Send (GUICTRLREAD($Input1))
    Send ("{ENTER}")
    EndFunc

    Func _pClose ()
    Exit
    EndFunc
    EndIf

    EndSwitch
    WEnd

    [/autoit]

    Das Problem:

    Wenn ich bei der Checkbox das Häckchen setze, und F1 drücke, so erscheint
    mein Text den ich im Inputfeld eingegeben habe. Doch mache ich das Häckchen weg und drücke
    wieder F1 so kommt der Text nochmal. Es soll aber so sein, das wenn man das
    Häckchen wieder entfernt, das eigentlich garnichts passiert. Könnt ihr mir pls helfen?

    Einmal editiert, zuletzt von cOraXx (23. November 2010 um 21:56)

  • Dein Script funktioniert gar nicht, so wie es jetzt ist (Du kannst keine Funktion innerhalb einer anderen Funktion definieren). :rolleyes:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstants.au3>

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

    #region ### START Koda GUI section ### Form=C:\Users\Alex\Desktop\Koda GUI's\Login Helper (new).kxf
    $Form1 = GUICreate("SA:MP Login Helper", 457, 413, 194, 128)
    GUISetBkColor(0xFFFFFF)
    $Picture = GUICtrlCreatePic("C:\Users\Alex\Desktop\gta.jpg", 0, 40, 457, 353)
    $Password = GUICtrlCreateLabel("Your password:", 16, 8, 116, 27)
    GUICtrlSetFont(-1, 11, 400, 0, "@Meiryo")
    $Input1 = GUICtrlCreateInput("YourPassword", 128, 8, 265, 21, $ES_PASSWORD)
    $Checkbox1 = GUICtrlCreateCheckbox("Enable", 400, 8, 65, 25)
    $MenuItem1 = GUICtrlCreateMenu("Menu")
    $About = GUICtrlCreateMenuItem("About", $MenuItem1)
    $Hotkeys = GUICtrlCreateMenuItem("Hotkeys", $MenuItem1)
    $Close = GUICtrlCreateMenuItem("Close", $MenuItem1)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    HotKeySet("{F2}", "_pClose")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet("{F1}", "_password")
    ElseIf GUICtrlRead($Checkbox1) = $GUI_UNCHECKED Then
    HotKeySet("{F1}")
    EndIf
    EndSwitch
    WEnd

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

    Func _password()
    Send("{t}")
    Send(GUICtrlRead($Input1))
    Send("{ENTER}")
    EndFunc ;==>_password

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

    Func _pClose()
    Exit
    EndFunc ;==>_pClose

    [/autoit]


    Das müsste das Problem lösen...

  • Bei mir funktioniert der Script wenn die 2 Funcs in der Schleife sind.
    Und vielen Dank für deine Hilfe.

  • Bist du sicher, dass exakt dieses Script bei dir funktioniert?

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=C:\Users\Alex\Desktop\Koda GUI's\Login Helper (new).kxf
    $Form1 = GUICreate("SA:MP Login Helper", 457, 413, 194, 128)
    GUISetBkColor(0xFFFFFF)
    $Picture = GUICtrlCreatePic("C:\Users\Alex\Desktop\gta.jpg", 0, 40, 457, 353)
    $Password = GUICtrlCreateLabel("Your password:", 16, 8, 116, 27)
    GUICtrlSetFont(-1, 11, 400, 0, "@Meiryo")
    $Input1 = GUICtrlCreateInput("YourPassword", 128, 8, 265, 21, $ES_PASSWORD)
    $Checkbox1 = GUICtrlCreateCheckbox("Enable", 400, 8, 65, 25)
    $MenuItem1 = GUICtrlCreateMenu("Menu")
    $About = GUICtrlCreateMenuItem("About", $MenuItem1)
    $Hotkeys = GUICtrlCreateMenuItem("Hotkeys", $MenuItem1)
    $Close = GUICtrlCreateMenuItem("Close", $MenuItem1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet ("{F1}","_password")
    HotKeySet ("{F2}","_pClose")

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

    Func _password ()
    Send ("{t}")
    Send (GUICTRLREAD($Input1))
    Send ("{ENTER}")
    EndFunc

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

    Func _pClose ()
    Exit
    EndFunc
    EndIf

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

    EndSwitch
    WEnd

    [/autoit]
  • name22,

    der Vorläufer dieses Skriptes: Login Helper for SA:MP hat (laut cOraXx) auch schon funktioniert. Ich hatte ihn nämlich dort auch schon darauf aufmerksam gemacht, er scheint einen anderen AutoIt-Compiler zu haben oder er ist sehr lernresistent,

    Edit: zum anderen ist dies (was seineigentliches Anliegen Betrifft) ein Doppelpost, siehe [ offen ] Brauche Hilfe bei Keybinder

    @Mod/Admin bitte beite Threads zusammenlegen,

    mfg autoBert

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (23. November 2010 um 20:36)

  • Naja also das Script ist in der Tat ohne Absturz lauffähig, wenn man die Fehlermeldung des Compilers ignoriert und auf continue anyway klickt.
    Wobei ich nicht nachvollziehen kann warum man die Ausführung eines Scripts erzwingen sollte wenn der Compiler ganz klar sagt, dass hier Syntax Fehler vorliegen...

  • Bist du sicher, dass exakt dieses Script bei dir funktioniert?

    Das Script funktioniert bei mir wenn 2 Func's in einer While Schleife sind. Ohne das beim Starten
    des Scripts irgendwelche Meldungen kommen.

    EDIT: Vielen Dank für die Hilfe an euch alle.

    @ autoBert:

    Ja ich bin sehr lernfähig :D
    Und bitte aktviere die Funktion das die User Nachrichten schicken können.
    Ich wollte dir die SAMP AGB's schicken, konnte es aber nicht.

  • Ja ich bin sehr lernfähig :D
    Und bitte aktviere die Funktion das die User Nachrichten schicken können.
    Ich wollte dir die SAMP AGB's schicken, konnte es aber nicht.

    • Auf meine 1. PN an dich (20. November 2010, 22:35)
    • hast du um 21. November 2010, 00:31 mit einer Rückfrage beantwortet, ok vielleicht hatte ich mich ja nicht klar genug ausgedrückt
    • um um 00:37 machst du einen Thread auf, sorry hatte gerade etwas anderes zu tun, ich habe ihn erst ca. 6.00 entdeckt, aber du hattest dir ja auch Stunden Zeit gelassen (warst anderweitig beschäftigt)
    • 21. November 2010, 02:09 erkläre ich dir ganz genau was ich wollte
    • 21. November 2010, 04:41 hast du nur nachgefragt ob ich Skype habe, hier hast du leider deine letzte Chance vertan, denn die von mir gewünschte Datei war nicht im Anhang, im übrigen hättest du sie auch in deinem Thread von 00:31als Dateianhang anhängen können,


    Da der Thread mittlerweile ja von jemand anders aktiviert wurde, bennötige ich sie jetzt nicht mehr.
    Ich werde mit meinen PM genauso weiterverfahren wie bisher wen ich einen Thread deaktivere bzw. wie bei dir noch nicht aktiviere schicke ich dem User ein PM, darauf kann er antworten oder es auch sein lassen. 1 Nachfrage wie bei dir ist auch gerade noch in Ordnung, aber dann ist das Thema für mich erledigt.

    Ja ich bin sehr lernfähig :D

    du solltest wirklich einmal die Hilfe zumindest bis GUI-Referenz durcharbeiten, dass heisst

    • durchlesen
    • versuchen die Beispiele zu verstehen
    • ähnliche nach zu skripten
    • wenn es nicht klappt wieder bei 1. anfangen


    denn die Grundlagen müssen sitzen,

    mfg autoBert

  • du solltest wirklich einmal die Hilfe zumindest bis GUI-Referenz durcharbeiten

    Ich arbeite eigentlich immer mit der Hilfe sobald ich ein Befehl nicht verstehe.
    Wegen den Grundlagen. Ich werde mal machen was Du mir sagst, weil Du bist erfahrener als
    ich also hast du mehr Ahnung was richtig für einen Scripter ist ;)