2 codes auswählen können ?!...

  • Nabend....
    Ich bin noch etwas neu in Autoit komme aber schon etwas gut klar. Nun habe ich folgenes anliegen: Ich habe nun 2 code´s und die möchte ich in einen tun. Am Anfang soll amn gefragt werden welche der 2 codes ausgeführt werden soll. Dann kann man sich zwischen den entscheiden. Dann wird der code nun ausgeführt. Am ende (wenn der gewählte code zu ende ist) wird man nochmal gefragt, diesesmla ob der andere code auchnochmal ausgeführt werden soll oder ob sich das prog schleißen soll. Evl kann mir jeamand helfen.
    mfg Kangtar

    2 Mal editiert, zuletzt von Kangtar (10. August 2008 um 13:59)

  • Meinste so?

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 360, 196, 324, 255)
    $Button1 = GUICtrlCreateButton("Code1", 48, 64, 105, 57, 0)
    $Button2 = GUICtrlCreateButton("Code2", 208, 64, 105, 57, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    code()
    Case $Button2
    coden()
    EndSwitch
    WEnd

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

    Func code()
    ;deine funktion
    EndFunc

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

    Func coden()
    ;deine funktion
    EndFunc

    [/autoit]

    Also der Benutzer kann durch das Gui fenster auswählen welchen code er ausführen möchte , dein code muss jetzt noch in die Function code und den anderen in die function coden schreiben

  • Thx Greek genauso meinte ich es. Aber ich habe ein kleines problem mit der Code verbindung. Bei mir kommt immer ein erroro. Ich pinne den Code mal an

    [autoit]

    $zahl = InputBox("Zahl", "Zahl eingeben")
    $test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
    HotKeySet("{F1}", "_start"

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

    While 1
    Sleep(150)
    WEnd
    Func _start()
    BlockInput(1)
    If $test > 0 Then
    For $lNum = 1 To $test
    MouseClick("left")
    Sleep(150)
    Sleep(150)
    Send("{DOWN}")
    Send("{right}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{right}")
    Sleep(150)
    Send("{space}")
    Sleep(150)
    Send("(" & $zahl & "ms)")
    Sleep(150)
    Send("{Enter}")
    Send("{UP}")
    Next
    BlockInput(0)
    If MsgBox(68,"Fertig","Fertig" & @LF & "Möchten Sie das Programm schliessen?") = 6 Then Exit 0
    EndIf
    EndFunc ;==>_start

    [/autoit]


    So der 2 ist fast identisch. Kann mir einer sagen wie und warum bei der verbindung ein error kommt?
    mfg Kangtar

  • Spoiler anzeigen
    [autoit]

    $zahl = InputBox("Zahl", "Zahl eingeben")
    $test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
    HotKeySet("{F1}", "_start")

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

    While 1
    Sleep(150)
    WEnd

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

    Func _start()
    BlockInput(1)
    If $test > 0 Then
    For $lNum = 1 To $test
    MouseClick("left")
    Sleep(150)
    Sleep(150)
    Send("{DOWN}")
    Send("{right}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{right}")
    Sleep(150)
    Send("{space}")
    Sleep(150)
    Send("(" & $zahl & "ms)")
    Sleep(150)
    Send("{Enter}")
    Send("{UP}")
    Next
    BlockInput(0)
    If MsgBox(68, "Fertig", "Fertig" & @LF & "Möchten Sie das Programm schliessen?") = 6 Then Exit 0
    EndIf
    EndFunc ;==>_start

    [/autoit]
  • Thx anno2008
    Ich hatte ganz vergessen f5 zum überprüfen zu drücken :whistling:
    Aber ich habe es diesemla gemacht und beim zusammengefügten ode gab es in Line 34 einen fehler. "Func" statement has no matching "EndFunc".:
    Das kann eigendlich nicht sein Weil es gibt da ein Ende. In line 34 ist

    [autoit]

    Func _start()

    [/autoit]


    mfg Kangtar

  • Klar zeile 58

    [autoit]

    EndFunc ;==>_start

    [/autoit]

    . Es ist der gleiche code den mit anno2008 verbessert hat da ist der drinn. Aber kann es daranliegen das es 2mal EndFunc gibt zeile 58 und 59

    [autoit]

    EndFunc ;==>_start
    EndFunc

    [/autoit]

    ?
    mfg kangtar

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 360, 196, 324, 255)
    $Button1 = GUICtrlCreateButton("Code1", 48, 64, 105, 57, 0)
    $Button2 = GUICtrlCreateButton("Code2", 208, 64, 105, 57, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    code()
    Case $Button2
    coden()
    EndSwitch
    WEnd

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

    Func code()
    $zahl = InputBox("Zahl", "Zahl eingeben")
    $test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
    HotKeySet("{F1}", "_start")

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

    While 1
    Sleep(150)
    WEnd

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

    Func _start()
    BlockInput(1)
    If $test > 0 Then
    For $lNum = 1 To $test
    MouseClick("left")
    Sleep(150)
    Sleep(150)
    Send("{DOWN}")
    Send("{right}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{right}")
    Sleep(150)
    Send("{space}")
    Sleep(150)
    Send("(" & $zahl & "ms)")
    Sleep(150)
    Send("{Enter}")
    Send("{UP}")
    Next
    BlockInput(0)
    If MsgBox(68, "Fertig", "Fertig" & @LF & "Möchten Sie das Programm schliessen?") = 6 Then Exit 0
    EndIf
    EndFunc ;==>_start
    EndFunc

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

    Func coden()
    $test = Round(InputBox("Wieviel?", "Wieviel"), 0)
    HotKeySet("{F1}", "_start")

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

    While 1
    Sleep(150)
    WEnd
    Func _start()
    If $test > 0 Then
    For $lNum = 1 To $test
    MouseClick("left")
    Sleep(150)
    Sleep(150)
    Send("{DOWN}")
    Send("{right}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{DELETE}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{UP}")
    Next
    If MsgBox(68,"fertig","Fertig" & @LF & "Möchten Sie das Programm schliessen?") = 6 Then Exit 0
    EndIf
    EndFunc ;==>_start
    EndFunc

    [/autoit]


    so hier ist mal der ganze code. Zu jedem gibt es auch ein ende.

  • Wie meinst du das mit verschachteln? Das die alle auf einem Haufen hängen? Das ist auch ein großes problem bei mir. da hängt alles zusammen. Das heißt ich muss es jetzt so machen das Ich die Line 34 mit einem EndFunc verbinde? Dann werde ich das mal versuche hinzubekommen.
    mfg Kangtar

  • Spoiler anzeigen

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 360, 196, 324, 255)
    $Button1 = GUICtrlCreateButton("Code1", 48, 64, 105, 57, 0)
    $Button2 = GUICtrlCreateButton("Code2", 208, 64, 105, 57, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    code()
    Case $Button2
    coden()
    EndSwitch
    WEnd

    Func code()
    $zahl = InputBox("Zahl", "Zahl eingeben")
    $test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
    HotKeySet("{F1}", "_start")
    EndFunc

    While 1
    Sleep(150)
    WEnd

    Func _start()
    BlockInput(1)
    If $test > 0 Then
    For $lNum = 1 To $test
    MouseClick("left")
    Sleep(150)
    Sleep(150)
    Send("{DOWN}")
    Send("{right}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{right}")
    Sleep(150)
    Send("{space}")
    Sleep(150)
    Send("(" & $zahl & "ms)")
    Sleep(150)
    Send("{Enter}")
    Send("{UP}")
    Next
    BlockInput(0)
    If MsgBox(68, "Fertig", "Fertig" & @LF & "Möchten Sie das Programm schliessen?") = 6 Then Exit 0
    EndIf
    EndFunc ;==>_start

    Func coden()
    $test = Round(InputBox("Wieviel?", "Wieviel"), 0)
    HotKeySet("{F1}", "_start")
    EndFunc

    While 1
    Sleep(150)
    WEnd
    Func _starten()
    If $test > 0 Then
    For $lNum = 1 To $test
    MouseClick("left")
    Sleep(150)
    Sleep(150)
    Send("{DOWN}")
    Send("{right}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{DELETE}")
    Sleep(150)
    Send("{Enter}")
    Sleep(150)
    Send("{UP}")
    Next
    If MsgBox(68,"fertig","Fertig" & @LF & "Möchten Sie das Programm schliessen?") = 6 Then Exit 0
    EndIf
    EndFunc ;==>_start

    Also folgendes war falsch:
    - Du hast in einer Funktion eine andere Funktion reingemacht. Du musst mit Endfunc die erste Funtkion vorher abschließen bevor du die neue anfängst.
    -Die Funktion _start hast du 2 mal drin gehabt. Die unterschiedlichen Funktionen müssen auch unterschiedliche Namen haben. Die 2 Funktion heißt nun _starten

    Wenn du willst das eine Funktion auch eine andere Funktion noch abspielt muss du es so machen.

    [autoit]

    Func code()
    $zahl = InputBox("Zahl", "Zahl eingeben")
    $test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
    HotKeySet("{F1}", "_start")
    _start () ;<<< So fühert er die Funktion _start noch in der Funktion Code aus. Vieleicht wolltest du das mit dem "verschachteln" erreichen
    EndFunc

    [/autoit]
  • Danke für eure Hilfe :thumbup: Ihr habt mir geholfen. JA ich habe es falsch geamcht mit den 2x _start(). Mein 2 fehler war das ich sie Blöde "verschachtelt". Ich habe das die ganze zeit falsch verstanden wie ihr das meintet mit den endfunc, aber jetzt habe ich es geschnaltt :) . Tut mir leid wenn ich euch eure nerven genommen habe, bin noch nicht so lange mit autoit in berührung aber ich versuch weiter am Ball zu bleiben.
    mfg Kangtar