Loop Problem

  • Hallo,

    ich habe mal wieder ein Loop Problem:

    1. Es gibt eine ini

    Spoiler anzeigen


    [Schreiben]
    1=Text1
    2=Text2
    3=Text3

    Meine Funktion

    [autoit]


    Func _Schreiben()

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

    $sType = IniReadSection("Funk.ini", "Schreiben")

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

    While 1
    Sleep ( 250 )
    For $i = 1 To $sType[0][0]
    If _IsPressed("01", $dll) Then
    Send("{HOME}{SHIFTDOWN}{END}{SHIFTUP}")
    Sleep(1000)
    ;Msgbox(0,"",$sType[$i][1])
    send($sType[$i][1])
    ;ExitLoop
    EndIf
    next
    If _IsPressed("02", $dll) Then
    ExitLoop
    EndIf
    WEnd
    ;DllClose($dll)

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

    endfunc

    [/autoit]

    Ich möchte, daß wenn die Funktion aufgerufen wird
    und ich die Linke Maustaste drücke
    Text1 geschrieben wird. Drücke ich wieder die Maustaste
    dann Text2 u.s.w.
    Das ganze sollte endlos laufen
    bis ich die rechte Maustaste drücke.

    Meine Versuche brachten leider keinen Erfolg!


    Liebe Grüße
    ;) Ilse

    Einmal editiert, zuletzt von Ilse (29. Mai 2012 um 12:34)

  • Also soweit ich das interpretiert habe, ist das mit der Forschleife recht umständlich.

    Machs mal ohne und dafür mit ner variable:

    [autoit]

    ;...
    if _IsPressed(01) Then
    $LaufVariable += 1
    IniWrite("Funk.ini", "Schreiben", $LaufVariable, "Text" & $Laufvariable")
    endif
    if _IsPressed(02) Then ExitLoop
    ;...

    [/autoit]

    bin net sicher ob es geht, habs grad nur so runtergetippt.

    mfg
    Hauke

  • Meinst das vielleicht so:

    [autoit]

    #include <Array.au3>
    #include <Misc.au3>
    $dll = DllOpen("user32.dll")
    $sType = IniReadSection("Funk.ini", "Schreiben")

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

    $i = 1
    $check = 0
    While 1
    Sleep(100)
    If _IsPressed("01", $dll) Then
    If $check = 0 Then
    $check = 1
    ConsoleWrite($sType[$i][1])
    $i = $i + 1
    If $i > $sType[0][0] Then
    $i = 1
    EndIf

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

    EndIf
    Else
    $check = 0
    EndIf

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

    If _IsPressed("02", $dll) Then
    ExitLoop
    EndIf
    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.