Habe öfters Probleme mit WinWaitActive(), zb bei TuneUp

  • Hallo erstmal!
    Ich bin ziemlich neu in der Welt von AutoIt und habe bereits einige Scripte durch (z.B.: xp-antispy). Neuerdings habe ich aber extreme Probleme mit der Funktion WinWaitActive(). Soweit ich das verstanden habe, gibt der erste Parameter den Titel des Fensters an, der zweite einen x-beliebigen Text aus dem Fenster und der dritte eine Timoutzeit in ms. Ich arbeite nur ungern mit Timeout, da sich eine Installation je nach Prozessorgeschwindigkeit unterschiedlich lang gestalten kann. Daher gilt meine Frage vorallem dem 2ten Parameter:
    Mit dem Windowinfotool hole ich mir ein Stück vom visible Text und noch immer bleibt mein Script hängen. Woran kann sowas liegen?

    Hier mal mein Script (der übrigens auf meiner VM einmal ohne Probs durchlief und seither nicht mehr so recht will; auch nicht auf fremdpcs):


    Ein ähnliches Problem habe ich auch bei Avira 8. Das zweite WinWaitActive() funktioniert nicht und selbst Alternativen wie WinWait() verweigern den Dienst.
    Dankeschön!

  • Hey mach des ganze halt nen bisschen anders mit deinem Script....
    hier mal mein Source, zwar noch vom 2007er, dürfte aber kein Problem sein das auf das 2008er anzuwenden.
    Nicht unbedingt so mit Tastenkombis senden, sondert mit Control Buttons...schaus dir einfach mal an...is recht simple...
    Ich lass dann gleich noch nen paar Einstellungen im TuneUp einstellen (z.B. das die Willkommensbildschirme nicht mehr angezeigt werden...Auto Update nicht mehr ausgeführt werden kann, und und und).

    Viel Erfolg
    Mfg
    Apollo 13

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.8.1
    Author: $cR!pT k!ddY

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

    Script Function:
    TuneUp Utilities 2007 installieren

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

    #ce ----------------------------------------------------------------------------

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

    ;$cR!pT Start

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

    ;TuneUp Utilities installieren
    ShellExecute(@Scriptdir & "\TuneUp Utillities 2007.exe")
    $title="TuneUp Utilities 2007"
    $title1="Update-Prüfung empfohlen"
    $title2="Vielen Dank!"
    $title3="Programm-Neustart erforderlich"
    WinWait($title, "Willkommen")
    ControlClick($title, "&Weiter >","Button1")
    WinWait($title, "ENDBENUTZER-LIZENZBESTIMMUNGEN")
    ControlClick($title, "Ich &akzeptiere den Lizenzvertrag","Button3")
    ControlClick($title, "&Weiter >","Button4")
    WinWait($title, "Diese Anwendung")
    ControlClick($title, "&Weiter >","Button4")
    WinWait($title, "Wählen Sie einen Ordner")
    ControlClick($title, "&Weiter >","Button1")
    WinWait($title, "Legen Sie die Installationseinstellungen fest")
    ControlClick($title, "TuneUp Shredder in das Kontextmenü von Dateien integrieren","Button4")
    ControlClick($title, "Symbol zum Start von TuneUp Utilities 2007 auf den Desktop legen","Button7")
    ControlClick($title, "Symbol zur 1-Klick-Wartung auf den Desktop legen","Button5")
    ControlClick($title, "TuneUp Utilities 2007 nach der Installation starten","Button6")
    ControlClick($title, "&Weiter >","Button1")
    WinWait($title, "wurde erfolgreich installiert")
    ControlClick($title, "&Fertig stellen","Button1")
    WinWait($title1, "bitte erneut erinnern")
    ControlClick($title1, "&Nein, bitte erneut erinnern","TRadioButton2")
    ControlClick($title1, "OK","TButton1")
    WinWaitActive($title, "Code eingeben")
    ControlClick($title, "Code eingeben","TButton3")
    ;Send("Name")
    Send("{TAB}")
    ;Send("Firma")
    Send("{TAB}")
    ;Send("Seriennummer")
    $title1="Code eingeben"
    WinWait($title1, "Abbrechen")
    ControlClick($title1 ,"OK", "TButton2")
    WinWait($title2, "Bitte bewahren")
    ControlClick($title2, "OK","Button1")
    WinWait($title3, "Sie müssen")
    ControlClick($title3, "OK","Button1")

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

    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","DisableCounter","REG_DWORD","1")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_DiskCleaner","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_DiskDoctor","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_DiskExplorer","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_IconEngineer","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_MemOptimizer","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_ProcessManager","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_RegistryCleaner","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_RegistryDefrag","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_RegistryEditor","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_RescueCenter","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_Shredder","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_StartUpManager","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_SystemControl","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_SystemInformation","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_SystemOptimizer","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_Undelete","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_UninstallManager","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_UpdateWizard","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\6.0\WelcomeScreen","ws_WinStyler","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\Shredder","ShowContextMenuIcon","REG_DWORD","0")
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\TuneUp\Utilities\Shredder","ShowContextMenuItem","REG_DWORD","0")
    FileDelete(@HomeDrive & "\WINDOWS\Tasks\1-Klick-Wartung.job")
    FileDelete(@HomeDrive & "\Dokumente und Einstellungen\All Users\Startmenü\Programme\TuneUp Utilities 2007.lnk")
    FileMove(@HomeDrive & "\Programme\TuneUp Utilities 2007\UpdateWizard.exe", @HomeDrive & "\Programme\TuneUp Utilities 2007\UpdateWizard.exe.bak")
    ShellExecute(@Scriptdir & "\Settings.reg")
    WinWait("Registrierungs-Editor","Möchten Sie die Informationen")
    ControlClick("Registrierungs-Editor","&Ja","Button1")
    Sleep(200)
    ControlClick("Registrierungs-Editor","OK","Button1")

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

    ;$cR!pT End

    [/autoit]
  • Danke, das hat geholfen. Jedoch tritt dieses Phänomen auch mit dieser Methodik auf. Dann lösch ich eine Leerzeile oder verändere was kleines am Script, speichere erneut und es geht manchmal weiter. Dann hengts mal wieder woanders. Hier mal mein Upgedateter Code:

    Spoiler anzeigen
    [autoit]

    ;TuneUp Utilities 2008 Setup
    BlockInput(1)
    run(@ProgramFilesDir & "\setups\TU2008TrialDE.exe")
    $title="TuneUp Utilities 2008"
    WinWait($title, "Willkommen")
    ControlClick($title, "&Weiter >", "Button1") ;hier steht der Script an, sobald ich selbstständig auf weiter klicke funzt der Rest
    WinWait($title, "Lizenzvertrag")
    ControlClick($title, "Ich &akzeptiere den Lizenzvertrag.", "Button3")
    ControlClick($title, "&Weiter >", "Button4")
    WinWait($title, "Benutzer-Informationen")
    ControlClick($title, "&Weiter >", "Button4")
    WinWait($title, "Zielordner")
    ControlClick($title, "&Weiter >", "Button1")
    WinWait($title, "Anwendungseinstellungen")
    ControlClick($title, "Symbol zum Start von TuneUp Utilities 2008 auf den Desktop legen", "Button6")
    ControlClick($title, "&Weiter >", "Button1")
    WinWait("TuneUp Utilities 2008", "beenden")
    ControlClick($title, "&Fertig stellen", "Button1")
    ;Programm muss selbstständig gestartet werden, da nach dem Setup nichts gestartet wird
    run(@ProgramFilesDir & "\TuneUp Utilities 2008\Integrator.exe")
    WinWait("Update-Prüfung empfohlen")
    Send("!n") ;DropDownmenu stellt für mich noch Probleme dar
    Send("{ENTER}") ;ControlClick("Update Prüfung empfohlen", "OK", "TButton1") funktioniert hier irgendwie nicht
    WinWait($title, "Produktschlüssel eingeben")
    ControlClick($title, "Produktschlüssel eingeben", "TButton1")
    WinWait("Code eingeben")
    Send("NAME")
    Send("{TAB}")
    Send("FIRMA")
    Send("{TAB}")
    Send("SERIENNUMMERHIEREINGEBEN")
    ControlClick("Code eingeben", "OK", "TButton2")
    WinWait("Vielen Dank!")
    ControlClick("Vielen Dank!", "OK", "Button1") ;hier hengts auch manchmal
    WinWait("Programm-Neustart erforderlich")
    ControlClick("Programm-Neustart erforderlich", "OK", "Button1")
    BlockInput(0)
    ;TuneUp Utilities 2008 ENDE

    [/autoit]