Wartebildschirm mit Bewegung ?

  • Moin,
    folgender Code liegt vor:

    Local $Splash = SplashTextOn ('Bitte warten', 'Bitte haben Sie ein klein wenig Geduld')
    runwait ($ziel)
    splashOff ()

    während das externe Programm ausgeführt wird, gibt es eine Nachricht. Externes programm zu Ende -> Nachricht weg. Soweit so gut, so gewollt.

    Leider ist die Nachricht statisch, da ich ja während autoIT wartet keinen anderen Aufruf geben kann. Also immer der gleiche Text. Wenn sich aber auf dem Schirm nichts tut, kommt der Anwender immer auf die Idee sonst geht auch nichts :) Gibt es soetwas wie ein "animiertes" Fensterchen? Mit Sanduhr, laufenden Balken? Könnte auch ein animiertes Gif sein wenn das denkbar ist? Sozusagen ein warten Gif ? Bin für jeden (einfachen) Ansatz dankbar.

    Danke für Tip wie ich das hinbekommen kann.

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

    • Offizieller Beitrag

    Die Funktion die mit der TimerUdf aufgerufen wird, funktioniert auch während auf ein externes Programm gewartet wird.
    Hier im Beispiel auf Notepad:

    Spoiler anzeigen
  • @autoBert, ja so könnte es aussehen - hauptsache es bewegt sich. Mein problem ist, dass es sich ja in meinem Fall nicht bewegen würde, der Source wartet ja?

    @ Oskar Danke - leider verstehe ich nur Bahnhof. Kan mir das bitte jemand in Teilen erklären? Auch Dr. Google bringt mich nicht weiter...

    Der Ansatz ist wohl der, dass Zeit auch vergeht wenn nichts getan wird (oder gewartet). Anders als bei sleep, dort wird ja eine bestimmte Zeit geschlafen, mißt der Timer nur die vergangene Zeit. Aber auch den Aufruf die Zeit erneut zu messen bekomme ich ja nicht hin (Runwait) Sorry ich stehe auf dem Schlauch.


    Danke

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hab mal ne Quick&Dirty Version von RunWait gekleckst die nach vorgegebenem Zeitintervall noch Aktionen ausführen kann

    [autoit]


    Func _MyRunWait($Program, $WorkingDIR = '', $ShowFlag = '', $OptFlag = '')
    $WorkingDIR = ($WorkingDIR = '' Or $WorkingDIR = Default) ? '' : $WorkingDIR
    $ShowFlag = ($ShowFlag = '' Or $ShowFlag = Default) ? '' : $ShowFlag
    $OptFlag = ($OptFlag = '' Or $OptFlag = Default) ? '' : $OptFlag

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

    Local $Time = 1000 ; Zeit (in ms) nach der etwas getan werden soll
    Local $Timer = TimerInit()
    Local $PID = Run($Program, $WorkingDIR, $ShowFlag, $OptFlag)
    While ProcessExists($PID)
    Sleep(50)
    If TimerDiff($Timer) >= $Time Then
    ; Hier Code einfügen
    $Timer = TimerInit()
    EndIf
    WEnd
    EndFunc

    [/autoit]

    Vielleicht kannst ja damit was anfangen

    MfG

    UNPLEASANT SPOILER

    You just lost the game!

  • Moin,
    meinen Dank an alle. Ich verstehe zwar die Angelegenheit mit dem Timer noch immer nicht :) Aber Andys Lösung ist schnell und simpl. Zumal man die Texte noch anpassen kann. MAcht schnell was es soll.

    @Schadow667 diese function nehme ich mir bei Gelegenheit mall vor.


    Danke an alle

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)