alles unattended installieren mit Makros in AutoIt 3
Macros fĂŒr das Automatisieren von Aufgaben sind meist nicht die richte Lösung. Eine Softwareinstallation sollte zum Beispiel immer mit den vom Hersteller bereitgestellten Möglichkeiten erfolgen, andere Automatisierungsaufgaben mit den vom Hersteller bereitgestellten APIs.
Im Falle der VNC-Installation wĂ€re die richte Lösung fĂŒr das Installieren das Verwenden von Silent Install-Parametern, also der Aufruf mit z.B. folgenden Parametern: vlc-???-win32.exe /L=1033 /S,Â
Das hier prĂ€sentierte Macro fĂŒr das Installieren des VLC-Player dient also rein als Demonstration.Â
Beispielvideo
VLC wird vollkommen automatisch durch Fenstererkennung und Tastatureingaben installiert:Â
wir starten
die Erste Zeile enthÀlt den Startbefehl der Installation:
run("vlc-0.8.6c-win32.exe")
(am einfachsten das AutoIt Script ins selbe Verzeichnis legen damit du keine Pfadangaben machen musst)
wenn du diese 1te Zeile ausfĂŒhrst (mit Tools/Go) startet die Installation:
Â
wir starten zusÀtzlich das "AutoIt v3 Window Info" Fenster:
("Start" "Alle Programme" "AutoIt v3" "AutoIt v3 Window Info")
wenn du jetzt deine Maus auf den "OK" Button bewegst zeigt dir der AutoIt Window Info:
Â
im Auto IT Script geben wir folgendes ein
WinWait("Installer Language","Please select a language.")
heiĂt soviel wie: warte auf das Fenster "Installer Language" mit Text "Please select a language." (zu finden in Visible Text im AutoIt Window Info)
der Text kann auch nur ein Ausschnitt vom Fenster sein: Wichtig ist dass der Text nur in diesem Fenster vorkommt, damit das Script wirklich nur das macht was es soll!
dann mit:
WinActivate("Installer Language","Please select a language.")
das Fenster in den Vordergrund bringen
und mit:
ControlClick("Installer Language","Please select a language.", "OK", "left")
auf "OK" klicken (der genaue Button Text kann unter "Control" im AutoIt Window Info gefunden werden, funktionieren wĂŒrde auch: "1" anstelle von OK weil der Button die ID 1 hat
dem Bild entsprechend weiter mit:
WinWait("VideoLAN VLC media player 0.8.6c Installation","Willkommen beim ")
WinActivate("VideoLAN VLC media player 0.8.6c Installation","Willkommen beim ")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Willkommen beim ", 1, "left")
WinWait("VideoLAN VLC media player 0.8.6c Installation", "Komponenten")
WinActivate("VideoLAN VLC media player 0.8.6c Installation", "Komponenten")
um bei der Installationsmethode "Full" auszuwÀhlen:
ControlCommand("VideoLAN VLC media player 0.8.6c Installation", "Komponenten", 1017, "SelectString", "Full")
um z.B. den Desktop Shortcut nicht zu verwenden mit der Tastatur 2* "runter" drĂŒcken und die "Leertaste":
ControlFocus("VideoLAN VLC media player 0.8.6c Installation", "Komponenten", 1032)
ControlSend("VideoLAN VLC media player 0.8.6c Installation", "Komponenten", 1032, "{DOWN 2}" & "{SPACE}")
dann normal weiter:
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Komponenten", 1, "left")
Â
Â
Â
WinWait("VideoLAN VLC media player 0.8.6c Installation", "Zielverzeichnis")
WinActivate("VideoLAN VLC media player 0.8.6c Installation", "Zielverzeichnis")
mit ControlSetText kann z.B. das Zielverzeichnis geÀndert werden:
ControlSetText("VideoLAN VLC media player 0.8.6c Installation", "Zielverzeichnis",1019,"c:\vlc")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Zielverzeichnis", 1, "left")
Â
Â
WinWait("VideoLAN VLC media player 0.8.6c Installation", "wurde auf Ihrem Computer installiert")
WinActivate("VideoLAN VLC media player 0.8.6c Installation", "wurde auf Ihrem Computer installiert")
um den Start von VLC zu verhindern VideoLan VLC media Player ausfĂŒhren deaktivieren:
ControlCommand("VideoLAN VLC media player 0.8.6c Installation", "wurde auf Ihrem Computer installiert", 1203, "UnCheck", "")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","wurde auf Ihrem Computer installiert", 1, "left")
Â
ZusĂ€tzliche Kontrolle ĂŒber den Ablauf:
mit blockinput(1) kann Maus und Tastatur gesperrt werden
kann mit blockinput(0) oder durch drĂŒcken von Strg Alt Entf wieder aktiviert werden
zum ĂŒberwachen ob ein Fenster kommt bzw. wenn ev. ein 2tes erwartet wird (wenn die Software beispielsweise schon installiert ist und ev. andere Schritte gesetzt werden mĂŒssen:
$fensterda=WinWait("Installer Language","Please select a language.",20)
wartet 20 Sekunden auf das "Installer Language" Fenster, wenn aber VLC bereits installiert ist wird dieses nie kommen sondern folgendes:
in diesem Fall wird die Variable $fensterda auf "0" gesetzt
wĂŒrde das erwartete Fenster auftachen wĂ€re $fensterda auf "1"
nochmal alles zusammen:
blockinput(1)
run("vlc-0.8.6c-win32.exe")
$fensterda=WinWait("Installer Language","Please select a language.",20)
if $fensterda=1 Then
WinActivate("Installer Language","Please select a language.")
ControlClick("Installer Language","Please select a language.", 1, "left")
WinWait("VideoLAN VLC media player 0.8.6c Installation","Willkommen beim ")
WinActivate("VideoLAN VLC media player 0.8.6c Installation","Willkommen beim ")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Willkommen beim ", 1, "left")
WinWait("VideoLAN VLC media player 0.8.6c Installation","Lizenzabkommen")
WinActivate("VideoLAN VLC media player 0.8.6c Installation","Lizenzabkommen")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Lizenzabkommen", 1, "left")
WinWait("VideoLAN VLC media player 0.8.6c Installation", "Komponenten")
WinActivate("VideoLAN VLC media player 0.8.6c Installation", "Komponenten")
ControlCommand("VideoLAN VLC media player 0.8.6c Installation", "Komponenten", 1017, "SelectString", "Full")
ControlFocus("VideoLAN VLC media player 0.8.6c Installation", "Komponenten", 1032)
ControlSend("VideoLAN VLC media player 0.8.6c Installation", "Komponenten", 1032, "{DOWN 2}" & "{SPACE}")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Komponenten", 1, "left")
WinWait("VideoLAN VLC media player 0.8.6c Installation", "Zielverzeichnis")
WinActivate("VideoLAN VLC media player 0.8.6c Installation", "Zielverzeichnis")
ControlSetText("VideoLAN VLC media player 0.8.6c Installation", "Zielverzeichnis",1019,"c:\vlc")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","Zielverzeichnis", 1, "left")
WinWait("VideoLAN VLC media player 0.8.6c Installation", "wurde auf Ihrem Computer installiert")
WinActivate("VideoLAN VLC media player 0.8.6c Installation", "wurde auf Ihrem Computer installiert")
ControlCommand("VideoLAN VLC media player 0.8.6c Installation", "wurde auf Ihrem Computer installiert", 1203, "UnCheck", "")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","wurde auf Ihrem Computer installiert", 1, "left")
EndIf
if $fensterda=0 Then
WinWait("VideoLAN VLC media player 0.8.6c Installation","VLC media player has already been installed")
WinActivate("VideoLAN VLC media player 0.8.6c Installation","VLC media player has already been installed")
ControlClick("VideoLAN VLC media player 0.8.6c Installation","VLC media player has already been installed", 7, "left")
WinWait("Installer Language","Please select a language.",20)
WinActivate("Installer Language","Please select a language.")
ControlClick("Installer Language","Please select a language.", 2, "left")
EndIf
blockinput(0)
Â

{{percentage}} % positiv

DANKE fĂŒr deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
User: hans Hallo Kess, einfach den letzten Button bestÀtigen lassen, dann sollte er beenden
User: Kess Hi ich habe das Problem, dass meine Installation nicht abgeschlossen wird. Das heisst, dass er den letzte Button nicht betÀtigt. Könnt ihr mir vielleicht helfen?
User: Tira Nette Anleitung um das Prinzip von AutoIT mal vorzustellen. VLC installiert man unattended/silent rigens so: vlc-0.8.6c-win32.exe /L= /S :)
User: stiwie Eine einfache sehr gut verstÀndliche Anleitung mit der auch ein AnfÀnger eine unattended Installation erstellen kann. Super und Danke!!!