Script pausieren und auf Useraktion warten

  • Hallo,

    ich brauche mal Hilfe ?(

    Ich mache gerade meine ersten Schritte im AutoIt und habe mir einen einfachen Script gebastelt um über unser Deploymentsystem eine AutoIt exe aufzurufen um XP SP3 (silent) weltweit zu installieren. Es funktioniert soweit alles. Ich möchte aber, dass das "Installation completed" Fenster nur durch drücken einer Taste geschlossen wird.

    Daher meine Frage:

    Wie kann ich ein Script unterbrechen und es durch Useraktion weiterlaufen lassen?

    Also so etwas wie "Press any Key to continue"

    MfG
    mapi

  • Hi,

    Da ich nicht weiss, ob das Fenster "Installation completed" von Dir mit AutoIt Mitteln erzeugt wird...


    Wenn durch AutoIT, dann erzeuge kein InfoFenster, sondern eine Messagebox:

    MsgBox (0, "Installation completed.....","Please click o.k to continue.....")


    ;-))

    Stefan

  • Ansonsten eine While-Schleife, die auf die Existenz des Fensters wartet...

    ... silent Installation XP SP3 ......

    While Not WinExists("Unbenannt - Editor") ; ersetze "Unbenannt - Editor" durch den Fensternamen Deiner Meldung
    sleep(10)
    WEnd
    MsgBox (0, "Installation beendet ...","drücken Sie Weiter zum fortfahren ...")

    ... weitere Teile deines Scriptes ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Danke für die Infos! :thumbup:

    Ich werde es mit MsgBox testen.

    Ich kann es mit einem Script in dem ich einen Fensternamen benutzen muss nicht umsetzen, da ich das SP in 13 verschiedenen Sprachen ausrollen muss und in jeder Sprache das Fenster einen anderen Namen hat.
    Das wird bei z.B. Koreanisch, Japanisch usw. quasi unmöglich.

    Gruß
    mapi

  • Hi,

    vielleicht geht es doch mit WinExist, wenn Du die Class benutzt. Siehe Hilfe spezielle Definitionen. Die Class bekommst Du mit AutoIt Window Info. Die Class sollte sprachenunabhängig sein.

    ;-))

    Stefan

  • Vielen Dank !!

    Die MsgBox funktioniert!

    Gruß
    MaPi

    Einmal editiert, zuletzt von MaPick (21. Juli 2009 um 11:16)

  • [autoit]

    Dim $ini = $scriptdir & "Install-Log.ini"
    Dim $language = IniReadSection($ini, _Language())

    [/autoit]

    Die Language Funktion gibt es in der Hilfe, der Rückgabewert ist das der Sectionsname in einer Ini.

    [German]
    mesg_001=Willkommen
    mesg_003=Weiter
    mesg_005=Platzhalter für evtl andere Meldungen
    mesg_004=Installation fertig

    [English]
    mesg_001=Welcome
    mesg_003=Next
    mesg_005=Platzhalter für evtl andere Meldungen
    mesg_004=Installation finished

    Im Programm nutzt Du dann nur die $language[1+n][1]
    Nur gut dokumentieren damit man noch erkennt welches Fenster man im Script gerade in den Fingern hat. ;)
    Der Zeichensatz muss auch der Ini speicherbar sein, aber testen kann man es ja.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o