Tutorial - WinZip

Dieses Tutorial zeigt dir, wie man die Installation WinZip 9 SR-1 automatisieren kann. Es wird vorausgesetzt, dass du Skripte in AutoIt schreiben und ausführen, sowie das AutoIt v3 Window Information Tool benutzen kannst, um Fenstertitel und -texte herauszufinden. All das wird in den Tutorials HalloWelt und Notepad gezeigt.

Die WinZip-Installation umfasst ca. 10 Dialoge, in denen man Schaltflächen drücken musste (normalerweise Weiter [engl. Next]), um mit der Installation fortzufahren. Wir werden ein Skript schreiben, das einfach auf diese Dialogfenster wartet und dann die richtigen Schaltflächen drückt. Wie bei derartigen Installationen üblich bleibt der Titel dieser Dialoge gleich (hier: WinZip Setup), sodass wir die Dialogfenster im Skript unterscheiden müssen. Ich habe euch Screenshots jedes einzelnen Fensters gemacht und wenn du auf das jeweilige Bild klickst, erhältst du die zugehörigen Window Information Tool Ergebnisse für den Dialog.

Lege zuerst ein Verzeichnis an, das wir für die WinZip-Installationsroutine und unser Skript benutzen werden. Kopiere die WinZip-Installationsroutine in das Verzeichnis und lege ein leeres Skript namens winzipinstall.au3 an.

Wir führen nun die Installation von Hand durch und schreiben quasi "nebenher" das Skript. Die zur Automation nötigen Skriptzeilen werden nach jedem Bild gezeigt (vergiss nicht, dass "hinter" den Bildern das Ergebnis der Anwendung des Window Information Tool schlummert!). Du kannst dir stattdessen auch das komplette Skript ansehen.

Die erste Skriptzeile ist einfach: Wir wollen die Datei winzip90.exe starten:

@@SyntaxHighlighting@@ Run("winzip90.exe") @@End@@

 

Das erste Dialogfenster erscheint.

Wir müssen warten, bis dieses Fenster aktiv ist und dann die Tastenkombination ALT + S simulieren, um den Setup-Button anzuklicken. Die resultierenden Skriptzeilen lauten:

@@SyntaxHighlighting@@ WinWaitActive("WinZip® 9.0 SR-1 Setup", "&Setup") Send("!s") @@End@@

(Vergiss nicht, dir anzusehen, was das AutoIt v3 Window Information Tool zu diesem Fenster zu sagen hat, besonders, weil hier das speziellen Zeichen (R) vorkommt, das nur schwer einzutippen ist.)

 

Die Dialog zur Auswahl des Installationsverzeichnisses wird als nächstes erscheinen:

Wir müssen wieder auf das Fenster warten und dann ENTER drücken, um das vorgeschlagene Verzeichnis zu akzeptieren. Die zugehörigen Skriptzeilen:

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "into the following folder") Send("{ENTER}") @@End@@

 

Danach kommt dieses Fenster:

Der Fenstertitel ist exakt der gleiche wie beim vorherigen und allen kommenden Fenster! Um den Skript nun den Unterschied zwischen den Fenstern mitzuteilen, musst du auch den Fenstertext verwenden. Versuche immer, den eindeutigsten möglichen Text zu nehmen. In diesem Fall habe ich mich für WinZip features include entschieden. Nach dem Erscheinen des Fensters wollen wirALT + N drücken (lassen):

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "WinZip features include") Send("!n") @@End@@

 

Dann kommt der Lizenzdialog:

Wir müssen nur auf das Fenster warten und dann ALT + Y klicken, um den Vertrag zu akzeptieren:

@@SyntaxHighlighting@@ WinWaitActive("License Agreement") Send("!y") @@End@@

 

Die Installation geht einige Dialoge lang so oder so ähnlich weiter. Deshalb einfach nur das Bild und die jeweils zur Automation benötigten Skriptzeilen dazu.

 

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "Quick Start Guide") Send("!n") @@End@@

 

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "switch between the two interfaces") Send("!c") Send("!n") @@End@@

 

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "&Express setup (recommended)") Send("!e") Send("!n") @@End@@

 

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "WinZip needs to associate itself with your archives") Send("!n") @@End@@

 

Das ist das letzte Dialogfenster der Installation. Beachte, dass der Finish-Button keinen Tastatur-Shortcut besitzt - zum Glück ist er ohnehin der Standardbutton, sodass wir einfach ENTER drücken können. Wenn das nicht so wäre, könnten wir mittels der ALT-Taste zwischen den Controls hin- und herspringen oder - noch besser - die ControlClick-Funktion benutzen.

@@SyntaxHighlighting@@ WinWaitActive("WinZip Setup", "Thank you for installing this evaluation version") Send("{ENTER}") @@End@@

 

Nach der Installation starten WinZip automatisch:

Wir warten einfach auf das Fenster und benutzen dann die WinClose-Funktion, um es direkt wieder zu schließen.

@@SyntaxHighlighting@@ WinWaitActive("WinZip (Evaluation Version)") WinClose("WinZip (Evaluation Version)") @@End@@

 

Hier das komplette Skript - ich habe jedes Fenster kommentiert, damit sich das Skript leichter verstehen lässt.

Das war es schon! Führe die Datei winzipinstaller.au3 aus und sieh dir an, wie WinZip in wenigen Sekunden installiert wird. Die hier erlernten Techniken helfen dir, die meisten Installationen zu automatisieren.

Kleine Aufgabe: Benutze statt der Send-Funktion die ControlClick-Funktion.Dazu musst du vermutlich bei Controls weiter lesen.