Syntax Problem

  • Hey es kommt immer der fehler dass in 21,3 EndIf fehlt obwohl sie drinne ist.
    Was mache ich falsch?

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    HotKeySet("{F1}", "_Start")
    HotKeySet("{F2}", "_Stop")
    HotKeySet("{F10}", "_drei")

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

    Global $Status = 0

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

    Func _Start()
    Global $Status = 1
    EndFunc ;==>_Aktivieren

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

    Func _Stop()
    Global $Status = 0
    EndFunc

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

    While 1
    If $Status = 1 Then
    Func _drei()
    MouseClick("left" , , , 1)
    Sleep(10)
    MouseClick("left" , , , 1)
    Sleep(10)
    MouseClick("left" , , , 1)
    Sleep(10)
    EndFunc
    EndIf
    WEnd

    [/autoit]

    Lg

    Einmal editiert, zuletzt von Noci (3. Februar 2011 um 16:17)

  • Versuchs mal so

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    HotKeySet("{F1}", "_Start")
    HotKeySet("{F2}", "_Stop")
    HotKeySet("{F10}", "_drei")

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

    Global $Status = 0

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

    Func _Start()
    Global $Status = 1
    EndFunc ;==>_Aktivieren

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

    Func _Stop()
    Global $Status = 0
    EndFunc

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

    While 1
    If $Status = 1 Then
    _drei()
    EndIf
    WEnd

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

    Func _drei()
    MouseClick("left" , , , 1)
    Sleep(10)
    MouseClick("left" , , , 1)
    Sleep(10)
    MouseClick("left" , , , 1)
    Sleep(10)
    EndFunc

    [/autoit]
  • Mir ist aufgefallen ich sollte die While schleife ganz rauslassen ^^
    Ich will ja nicht das ers spammt.
    Ich probier die Löung mal aus.

    zptsvhbfa Deine Lösung funktioniert leider nicht :(

    Okay so zeigt er schonmal keinen Fehler an:

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    HotKeySet("{F1}", "_Start")
    HotKeySet("{F2}", "_Stop")
    HotKeySet("{F10}", "_drei")

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

    Global $Status = 0

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

    Func _drei()
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    EndFunc

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

    Func _Start()
    Global $Status = 1
    EndFunc ;==>_Aktivieren

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

    Func _Stop()
    Global $Status = 0
    EndFunc

    [/autoit]

    Allerdings sollte er _drei nur ausführen wenn Global $Status = 1 ist. Wie kann ich das einbauen?

    2 Mal editiert, zuletzt von Noci (3. Februar 2011 um 13:42)

  • Das hier sollte doch reichen, wenn ich mich nicht irre...

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    HotKeySet("{F10}", "_drei")

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

    While Sleep(50)
    WEnd

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

    Func _drei()
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    EndFunc ;==>_drei

    [/autoit]
  • Du solltest dir die Funktion bzw. den Sinn und Zweck einer Funktion anschauen - du kannst keine Funktion innerhalb einer Schleife deklarieren, du kannst sie nur in einer Schleife aufrufen!

    Hier findest du entsprechende Hinweise und Erklärungen:

    Zitat von autoBert


    Hier kannst du dir die Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/Tutorial
    Sehr hilfreich ist auch das Buch von peethebee

    :)

  • name22

    Ja das ist richtig allerdings soll es nicht permanent aktiv sein!
    Nicht immer soll mit F10 die Funktion drei() ausgeführt werden.

    @stayawayknight
    Wie komme ich dann zu meiner gewünschten Lösung?
    Darum habe ich diesen Thread ja aufgemacht ?(

  • Das müsste deinen Vorstellungen entsprechen ;).

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    HotKeySet("{F1}", "_Start")
    HotKeySet("{F2}", "_Stop")
    HotKeySet("{F10}", "_Drei")

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

    Global $Status = 0

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

    While Sleep(100)
    WEnd

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

    Func _Drei()
    If $Status = 0 Then Return
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    EndFunc ;==>_Drei

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

    Func _Start()
    $Status = 1
    EndFunc ;==>_Start

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

    Func _Stop()
    $Status = 0
    EndFunc ;==>_Stop

    [/autoit]
  • Danke das passt so ;D

    Ich hab jetz noch

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Include <Misc.au3>
    $dll = DllOpen("user32.dll")

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

    If _IsPressed("01" , $dll) then
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    MouseClick("left")
    Sleep(10)
    EndIf

    [/autoit]

    Für mich entdeckt ;D Danke an alle!