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 codes auswählen können ?!...
-
- [ gelöst ]
-
Kangtar -
9. August 2008 um 19:19 -
Geschlossen -
Erledigt
-
-
Meinste so?
[autoit]#include <ButtonConstants.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit][autoit][/autoit][autoit]
$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
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
code()
Case $Button2
coden()
EndSwitch
WEndFunc code()
[/autoit][autoit][/autoit][autoit]
;deine funktion
EndFuncFunc coden()
[/autoit]
;deine funktion
EndFuncAlso 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")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
HotKeySet("{F1}", "_start"While 1
[/autoit]
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
So der 2 ist fast identisch. Kann mir einer sagen wie und warum bei der verbindung ein error kommt?
mfg Kangtar -
Poste mal den error dann wissen wir auch in welche Zeile das problem liegt, aber tut mir Leid ich geh jetzt auf ne Party
hoffe dir kann noch jemand anderes helfen^^ -
Ok viel spaß auf der Party
So folgener error kommt beim ausführen [Blockierte Grafik: http://qer1992.qe.funpic.de/ichat/autoiterror.png]
mfg Kangtar -
Spoiler anzeigen
[autoit]$zahl = InputBox("Zahl", "Zahl eingeben")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
HotKeySet("{F1}", "_start")While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(150)
WEndFunc _start()
[/autoit]
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 -
Thx anno2008
[autoit]
Ich hatte ganz vergessen f5 zum überprüfen zu drücken
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 istFunc _start()
[/autoit]
mfg Kangtar -
- Offizieller Beitrag
Und der dazugehörige "EndFunc"?
Die Fehlermeldung besagt nämlich, dass ein EndFunc fehlt. -
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
[/autoit]
EndFunc?
mfg kangtar -
- Offizieller Beitrag
Zu jedem Func darf/muss es nur einen EndFunc geben.
-
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$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
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
code()
Case $Button2
coden()
EndSwitch
WEndFunc code()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$zahl = InputBox("Zahl", "Zahl eingeben")
$test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
HotKeySet("{F1}", "_start")While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(150)
WEndFunc _start()
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc coden()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$test = Round(InputBox("Wieviel?", "Wieviel"), 0)
HotKeySet("{F1}", "_start")While 1
[/autoit]
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
so hier ist mal der ganze code. Zu jedem gibt es auch ein ende. -
- Offizieller Beitrag
Du darfst die Funktionen nicht verschachteln.
Jede Funktion muss mit einem EndFunc abgeschlossen sein, bevor Du eine neue beginnst. -
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 -
- Offizieller Beitrag
Nicht Verschachteln heißt, dass Du innerhalb von Func....EndFunc keine weitere Funktion erstellen darfst.
[autoit]
Erlaubt ist es nur so:
[/autoit][autoit][/autoit][autoit]
Func bla1()
; ...
EndFuncFunc bla2()
[/autoit][autoit][/autoit][autoit]
; ...
EndFuncFunc bla3()
[/autoit]
; ...
EndFunc -
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
WEndFunc code()
$zahl = InputBox("Zahl", "Zahl eingeben")
$test = Round(InputBox("Zahl2", "Zahl bidde eingeben"), 0)
HotKeySet("{F1}", "_start")
EndFuncWhile 1
Sleep(150)
WEndFunc _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 ;==>_startFunc coden()
$test = Round(InputBox("Wieviel?", "Wieviel"), 0)
HotKeySet("{F1}", "_start")
EndFuncWhile 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 ;==>_startAlso 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 _startenWenn du willst das eine Funktion auch eine andere Funktion noch abspielt muss du es so machen.
[autoit]Func code()
[/autoit]
$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 -
Danke für eure Hilfe 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