Installscript Notepad++ hängt

  • Ich poste hier mal mein Install-Script für Notepad ++

    [autoit]

    #RequireAdmin
    ;#NoTrayIcon

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

    #include "..\..\funktionen.au3"

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

    $parameter = ""

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

    $search = FileFindFirstFile(@ScriptDir & "\npp*.exe")
    $datei = FileFindNextFile($search)
    FileClose($search)
    ShellExecuteWait(@ScriptDir & "\" & $datei, $parameter)
    WinWaitActive("Installer Language")
    ControlClick("Installer Language","","Button1")
    WinWait("Notepad++ v4.2.2 Installation","&Weiter >")
    ControlClick("Notepad++ v4.2.2 Installation","&Weiter >","Button2")
    WinWait("Notepad++ v4.2.2 Installation ","< &Zurück")
    ControlClick("Notepad++ v4.2.2 Installation ","< &Zurück","Button2")
    ControlClick("Notepad++ v4.2.2 Installation ","< &Zurück","Button2")
    WinWait("Notepad++ v4.2.2 Installation ","&Installieren")
    ControlClick("Notepad++ v4.2.2 Installation ","&Installieren","Button2")
    WinWait("Notepad++ v4.2.2 Installation ","&Fertig stellen")
    ControlClick("Notepad++ v4.2.2 Installation ","&Fertig stellen","Button2")

    [/autoit]

    Hintergrund der Sache:

    Das Script bleibt beim ersten WinWaitActive-Aufruf hängen, dh. sofort nachdem das Installtionprogram gestartet wurde. Breche ich nun den Installtionsvorgang ab, bleibt das Script aktiv und das Trayicon weiterhin sichtbar.

    Öffne ich daraufhin die Installation erneut setzt das Script normal fort.

    Nach dem Beenden der Installation bleibt das Script und Trayicon allerdings wieder aktiv (dh. wird nicht beendet) obwohl der gesamte Vorgang eigentlich beendet ist.

    Hier noch ein Link für die Installationdatei von Notepad ++

    Notepad++

  • Hi,

    ich glaube da fehlt dir die Abbruchbedingung am ende, damit das Script wenn du das X oder auf Abbrechen klickst automatisch beendet wird

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Abbruch Bedingungen
    Case $msg = $GUI_EVENT_CLOSE ;kommt zum Einsatz wenn das X am Fenster getätigt wird
    ExitLoop

    Case $msg = $abbrechen1 ;kommt zum einsatz wenn Abbruch Button betätigt wird
    ExitLoop
    EndSelect

    [/autoit]


    Gruß

    Einmal editiert, zuletzt von Agent00 (11. September 2007 um 17:12)

  • Danke Agent00...
    Werd ich morgen auf Arbeit gleich mal testen.

    Allerdings erklärt das immer noch nicht, warum das Script nicht von anfang an durchläuft und ich erst das Installations-Proggi neu starten muss, damit er mit der ersten WinWaitActive weiter macht

    Einmal editiert, zuletzt von apsodifu (11. September 2007 um 21:41)

  • WinWaitActive heißt er soll auf das Fenster warten da und da du ja die fenster geschlossen hast wartet das Script bis ebend genau dieses Fenster Auftaucht..

    Gruß

  • Sorry, aber vielleicht wurde das falsch verstanden.

    Das Script startet und öffnet die Installationsdatei.
    Dann bleibt es bei dem WinWaitActive hängen, OBWOHL das Installationsfenster geöffnet ist.

    Dass das Script auch wirklich diese Zeile hängen bleibt, habe ich überprüft, indem ich nach dem WinWaitActive("Installer Language") ein MsgBox(1,"1") eingefügt habe, welches nicht durchgeführt wurde.

    Also steh ich leider immer noch an dem Problem :(

    • Offizieller Beitrag
    Zitat

    Original von apsodifu
    Sorry, aber vielleicht wurde das falsch verstanden.

    Das Script startet und öffnet die Installationsdatei.
    Dann bleibt es bei dem WinWaitActive hängen, OBWOHL das Installationsfenster geöffnet ist.
    (

    Das Script bleibt schon vorher "hängen", nicht erst bei WinWaitActive. Der Befehl ShellExecuteWait wartet bereits darauf, dass die Installation beendet wird.
    Benutze stattdessen ShellExecute und es funktioniert.

    MfG. Oscar

  • :hammer: :hammer: :irre:

    So ein doofer Fehler kann auch nur mir passieren.

    Danke Oscar...

    Klingt irgendwie gleich alles logisch was ? :rolleyes: