X mal Wiederholung

  • Hallo,

    ich benötige eine Lösung für ein Wiederholungs Script

    ich möchte das es sich X mal wiederholt und dann beendet zur zeit habe ich folgende Lösung

    [autoit]


    Global $Paused
    HotKeySet("{PAUSE}", "TogglePause")
    HotKeySet("{ESC}", "Terminate")

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

    Sleep(4000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)

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

    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script ist pausiert',0,0)
    WEnd
    ToolTip("")
    EndFunc

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

    Func Terminate()
    Exit 0
    EndFunc

    [/autoit]

    kann man es evtl reduzieren zb das ich nur die Anzahl der Wiederholungen eingebe ??

    MfG

  • [autoit]

    For $i=$start To $end Step $step
    ; ...
    Next

    [/autoit]

    Die Laufvariable (hier $i) startet mit dem Wert $start. Bei jedem Durchlauf der Schleife wird sie um $step erhöht, bis sie $end erreicht hat. Step ist optional (standart 1), muss also nicht jedesmal geschrieben werden.

    [autoit]

    For $i=0 To 4
    MsgBox(0, "", $i)
    Next

    [/autoit]


    ist das gleiche, wie

    [autoit]

    MsgBox(0, "", 0)
    MsgBox(0, "", 1)
    MsgBox(0, "", 2)
    MsgBox(0, "", 3)
    MsgBox(0, "", 4)

    [/autoit]
  • Wieso fängst du damit nichts an? Du hast doch bereits eine andere Schleife verwendet:

    [autoit]

    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script ist pausiert',0,0)
    WEnd
    ToolTip("")
    EndFunc

    [/autoit]

    Die For-Schleife sollte dein Problem aber lösen. Sieh dir dazu am besten mal die Hilfe oder Pee's Buch an (links findest du entsprechende Literatur).

    Gruß stay

  • ok scheinbar befindet sich in meinen Script noch ein paar Fehler ich bin nun mal kein Profi :S

    ich möchte das sich das Script jederzeit pausieren bzw. beenden läßt und das sich in diesem Falle die Maus auf eine bestimmte Position X mal klickt

    ich hoffe es kann mir jemand helfen

    MfG

  • [autoit]

    Global $f_Pause = False
    HotKeySet('{F3}', '_TogglePause')
    HotKeySet('{ESC}', '_Exit')

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

    While True
    While Not $f_Pause
    MouseClick( "left" , 285, 490 , 1 , 5)
    Sleep(10000)
    WEnd
    WEnd

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

    Func _TogglePause()
    $f_Pause = Not $f_Pause
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Lautet der Befehl nicht einfach:

    [autoit]

    MouseClick( "left" , 285, 490 , x , 10)

    [/autoit]


    Hierbei steht X für die anzahl der Klicks.
    Also wenn 5 mal auf (285|490) geklickt werden soll heißt der befehl:

    [autoit]

    MouseClick( "left" , 285, 490 , 5, 10)

    [/autoit]

    Oder ich verstehe das Problem nicht..

  • [autoit]

    Global $v_Input = InputBox('', 'Wie oft soll geklickt werden?')
    If (Not IsInt(Number($v_Input))) Or (Number($v_Input) < 1) Then Exit MsgBox(16, 'Error', 'Die Eingabe ist ungültig.')
    For $i = 1 To $v_Input
    MouseClick('left', 285, 490, 1, 5)
    Sleep(10000)
    Next

    [/autoit]

    Zeile 2 kann man auch auslassen - würde aber bei falschen Eingaben zu Fehlern führen.