Vorgang wiederholen (Schleife)?

  • Hallo,

    wie kann ich einen Vorgang wiederholen bis ein Fenster nicht mehr erscheint?

    Spoiler anzeigen
    [autoit]


    If WinActive("Fenster1", "") or WinExists("Fenster1", "") Then
    WinWaitActive("Fenster1", "")
    WinWaitClose("Fenster1", "")
    Else
    ExitLoop ; <- Hier soll die Schleife beendet werden, wenn das Fenster nicht mehr erscheint.
    EndIf

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

    If WinActive("Fenster2", "") or WinExists("Fenster2", "") Then
    WinWaitActive("Fenster2", "")
    WinWaitClose("Fenster2", "")
    EndIf

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

    If WinActive("Fenster3", "") or WinExists("Fenster3", "") Then
    WinWaitActive("Fenster3", "")
    ControlClick("Button")
    EndIf

    [/autoit]


    Hatte es mal mit einer While Schleif probiert, aber die wartet irgendwie nicht bis die jewaligen Fenster geschlossen werden 8| wie lässt sich das am besten lösen?

  • So?

    Spoiler anzeigen
    [autoit]

    While 1
    If Not WinExists("Fenster1", "") Then ExitLoop ; <- Hier soll die Schleife beendet werden, wenn das Fenster nicht mehr erscheint.

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

    If WinActive("Fenster2", "") Or WinExists("Fenster2", "") Then
    WinWaitActive("Fenster2", "")
    WinWaitClose("Fenster2", "")
    EndIf

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

    If WinActive("Fenster3", "") Or WinExists("Fenster3", "") Then
    WinWaitActive("Fenster3", "")
    ControlClick("Button")
    EndIf
    WEnd

    [/autoit]
  • Achso da hast du nicht gesagt.
    Dann probier mal das

    [autoit]

    While WinExists("Fenster1", "")
    Sleep(100)
    WEnd

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

    While WinExists("Fenster2", "")
    Sleep(100)
    WEnd

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

    While WinExists("Fenster3", "")
    Sleep(100)
    WEnd

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

    ControlClick("Button")

    [/autoit]


    oder das

    [autoit]

    WinWaitClose("Fenster1", "")
    WinWaitClose("Fenster2", "")
    WinWaitClose("Fenster3", "")
    ControlClick("Button")

    [/autoit]
  • Also das läuft so ab...

    Bei Fenster 1 wird etwas entpackt. Die Dauer hängt von der Grösse der Datei ab.

    Bei Fenster 2 wird das entpackte installiert, auch hier hängt die Dauer von der Grösse ab.

    Bei Fenster 3 muss nur etwas bestätigt werden.

    Wenn dann noch eine Datei vorhanden ist, gehts wieder mit Fenster 1 los, Fenster 2 und Fenster 3.

    Ist keine Datei mehr vorhanden soll es "ganz normal" weiter im Programm gehen.