Anfängerfrage - Schleife in Autoit Skript

  • Hallo liebe Community,

    Ich möchte Anfangen mich mit Autoit zu beschäftigen.
    Jedoch stoße ich schon jetzt an ein Problem.
    Ich möchte eine Schleife einbauen. Hier mein Versuch, der leider nicht klappt:

  • Zur Lösung von schwierigen Algorithmen gehe ich immer folgendermaßen vor: (Wird dir auch bei
    deinem Problem weiterhelfen ;D)

    Schritt 1:
    Zuerst überlege ich, was der Algorithmus genau wann machen soll. Ich lege einen Pseudocode an,
    damit ich beim Programmieren die Logik hinter meinen erdachten Algorithmus nicht vergesse. Lässt
    sich wunderbar auf dein Problem übertragen.

    Damit hast du schonmal beinahe einen fertigen Code.

    Schritt 2:
    Nun überlegst du dir, welche Funktionen du benötigst um dein Ziel zu erreichen. Dabei gehst du
    wieder deinen Pseudocode durch. Die Dokumentation ist dein Freund! :)

    Hier die Liste an dem, was du so benötigst:

    Code
    While-Schleife
    If-Abfragen
    Send() Funktion
    _IsPressed() Funktion (in Misc.au3)
    TimerInit() Funktion
    TimerDiff() Funktion

    Mit diesen Funktionen (abgesehen von Variablen und Operatoren) kommst du eigentlich sehr gut
    zurecht. Jetzt nur ein wenig nachdenken.

    Schritt 3:
    Nun wird der Code Programmiert. Ich wollte dir lediglich eine Hilfestellung geben da du halt
    noch Anfänger bist. Man lernt besser, wenn man es selber macht! Trotzdem habe ich dir hier im
    unteren Spoiler den Code vorgekaut. Guck am besten nur rein wenn du absolut nicht weiter
    kommst. Viel Spaß! ^^

    Spoiler anzeigen
    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    #include <Misc.au3>

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

    Global $hTimer = TimerInit()
    Global $bMode, $bSwitch

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    While Sleep(10)
    If _IsPressed('09') Then $bMode = True
    If _IsPressed('20') Then $bMode = False
    If _IsPressed('46') Then
    Send('3')
    Send('4')
    $bMode = False
    EndIf

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

    If $bMode And TimerDiff($hTimer) >= 100 Then
    If $bSwitch Then
    Send('2')
    Else
    Send('1')
    EndIf

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

    $bSwitch = Not $bSwitch
    $hTimer = TimerInit()
    EndIf
    WEnd

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]