Mein erster Autoinstaller

  • Hey ich hab für mich auf der arbeit einen Autoinstaller geschreiben.
    Aber als erstes geht mein dank an m-obi der mir sehr geholfen hat! Und an einen der mir grade vom namen nicht einfällt ^^ der mir die grund kenntisse gezeigt hat.
    nun zu meinem Script :) Ich bin stolz drauf xD

    Mein grund war das ich auf der arbeit (it systemelektroniker) auf neurechnern grundProgramme installieren muss. Und das wollte ich den rechner selbst machen lassen :)

    <|Programm Liste von denen die installiert werden|>

    WinXP:
    IE 8
    Windows Media Player 11
    Adobe Flash
    Adobe Reader
    Nero Free
    Avira (Singel)
    Kaspersky (Multi) <-- Halb Untendet

    Windows 7:
    Adobe Flash
    Adobe Reader
    Nero Free
    Avira (Singel)
    Kaspersky (Multi) <-- Halb Untendet

    Windows XP

    Spoiler anzeigen
    [autoit]


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

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

    AutoIt Version: 3.3.0.0
    Author: Kevin Brach

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

    Script Function:
    Autoinstaller LSC

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

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

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

    ;Auswahlfenster:
    GUICreate("LSC-Computer.de Installer! by Kevin",325,100)
    GUICtrlCreateLabel("Wähle nun aus auf welchem System Installiert werden soll!",10,10)
    $singleButton=GUICtrlCreateButton("Single-Core",30,40,120,50)
    $MultiButton=GUICtrlCreateButton("Multi-Core",150,40,120,50);okay...
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE ;wenn der Benutzer auf das rote X klickt, dann:
    Exit;Beenden
    Case $SingleButton
    $cores=1
    ExitLoop
    Case $MultiButton
    $cores=2
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete()
    ;~ MsgBox(64,"Test: $cores=",$cores)
    run("IE8-WindowsXP-x86-DEU.exe")
    winwaitactive("Windows Internet Explorer 8 installieren")
    send("!e")
    sleep(50)
    send("!w")
    send("!m")
    send("!w")
    winwaitactive("Windows Internet Explorer 8 installieren","Die Internet Explorer-Installation wurde abgeschlossen.")
    send("!t")
    winwaitactive("Windows Internet Explorer 8 installieren","Die Internet Explorer-Installation wurde abgeschlossen.")
    send("!t")
    send("!j")
    send("{SPACE}")
    ;Fallunterscheidung:Reader
    Run ("AdbeRdr920_de_DE.exe")
    WinWaitActive("Adobe Reader 9.2 - Assistent")
    Send("!w")
    Sleep(3000)
    Send("!i")
    WinWaitActive("Adobe Reader 9.2 - Assistent","Fertigstellen")
    Send("!f")
    ;Fallunterscheidung:Flash
    run("install_flash_player.exe")
    winwaitactive("Adobe Flash Player Plugin Installation: Installiere")
    winwaitactive("Adobe Flash Player Plugin Installation: Fertig")
    controlclick("Adobe Flash Player Plugin Installation: Fertig","",1)
    ;Fallunterscheidung:Nero
    run("Nero-9.4.12.708_lite.exe")
    winwaitactive("Nero 9 Lite - Installation","Willkommen bei der Installation von Nero 9 Lite")
    send("!W")
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Standard-Browser-Suche definieren", 1276)
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Startseite einrichten", 1149)
    send("!w")
    send("!w")
    WinWaitActive("Nero 9 Lite - Installation")
    controlclick("Nero 9 Lite - Installation","Ich akzeptiere die Lizenzbedingungen", 1016)
    send("!w")
    winwaitactive("Nero 9 Lite - Installation","Installationstyp auswählen")
    send("!w")
    WinWaitActive("Nero 9 Lite - Installation","Systemanforderungen")
    controlclick("Nero 9 Lite - Installation","Installieren", 1265)
    Do
    Sleep(100)
    Until ControlCommand("Nero 9 Lite - Installation","",1, "IsEnabled")
    controlclick("Nero 9 Lite - Installation","&Weiter >", 1)

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

    WinWaitActive("Nero 9 Lite - Installation","Helfen Sie uns, die Nero Software zu verbessern")

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

    ControlClick("Nero 9 Lite - Installation","&Weiter", 1)

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

    WinWaitActive("Nero 9 Lite - Installation","Installation erfolgreich durchgeführt")

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

    ControlClick("Nero 9 Lite - Installation","Installation erfolgreich durchgeführt", 1)
    ;Fallunterscheidung:mediaplayer
    Run("wmp11-windowsxp-x86-DE-DE.exe")
    winwaitactive("Windows Media Player 11","Echtheit der Windows-Kopie überprüfen")
    sleep(100)
    controlclick("Windows Media Player 11","Echtheit der Windows-Kopie überprüfen", 39305)
    winwaitactive("Windows Media Player 11","Vielen Dank, dass Sie sich für Windows Media Player 11 entschieden haben.")
    send("!s")
    winwaitactive("Windows Media Player 11","Willkommen")
    controlclick("Windows Media Player 11","&Expresseinstellungen (empfohlen)", 1122)
    send("!e")
    sleep("1000")
    send("!f")
    WINWAITACTIVE("Windows Media Player")
    send("!{F4}");Soll den start verhinden bzw beenden

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

    If $cores=1 Then
    opt("TrayIcomDebug", 1)
    run ("avira_antivir_personal_de.exe")
    sleep(1000)
    send("{SPACE}")
    winwait("Avira AntiVir Personal - Free Antivirus","Um fortzufahren, klicken Sie")
    WinActivate("Avira AntiVir Personal - Free Antivirus","Um fortzufahren, klicken Sie")
    send("!W")
    send("!W")
    sleep(60)
    send("!a")
    sleep (60)
    send("!W")
    winwait("Avira AntiVir Personal - Free Antivirus","Ich bestätige, dass ich die Avira AntiVir")
    WinActivate("Avira AntiVir Personal - Free Antivirus","Ich bestätige, dass ich die Avira AntiVir")
    send("{SPACE}")
    sleep(1000)
    send("!w")
    sleep(50)
    send("!w")
    winwaitactive("Avira AntiVir Personal - Free Antivirus Lizenz-Assistenten")
    controlclick("Avira AntiVir Personal - Free Antivirus Lizenz-Assistenten","",1070)
    send("!W")
    winwait("Avira AntiVir Personal - Free Antivirus","Installation beendet")
    controlclick("Avira AntiVir Personal - Free Antivirus","Readme.txt anzeigen", 1034)
    controlclick("Avira AntiVir Personal - Free Antivirus","Fertig stellen", 12325)
    winwait("Konfigurationsassistent")
    controlclick("Konfigurationsassistent","&Weiter", 12324)
    winwait("Konfigurationsassistent","Heuristic")
    controlclick("Konfigurationsassistent","&Weiter", 12324)
    send("!W")
    send("!W")
    winwait("Konfigurationsassistent","Wir empfehlen Ihnen nun eine kurze Systemprüfung")
    send("!W")
    controlclick("Konfigurationsassistent","Fertig stellen", 12325)
    runwait("Update")
    run("Nero-9.4.12.708_lite.exe")
    winwaitactive("Nero 9 Lite - Installation","Willkommen bei der Installation von Nero 9 Lite")
    send("!W")
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Standard-Browser-Suche definieren", 1276)
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Startseite einrichten", 1149)
    send("!w")
    send("!w")
    WinWaitActive("Nero 9 Lite - Installation")
    controlclick("Nero 9 Lite - Installation","Ich akzeptiere die Lizenzbedingungen", 1016)
    winwaitactive("Nero 9 Lite - Installation","Installationstyp auswählen")
    MsgBox(0, "Fertig!!!", "Bitte Starte den PC neu !")
    Else
    run ("kav9.0.0.736de.exe")
    winwaitactive ("Kaspersky Anti-Virus 2010")
    ControlClick("Kaspersky Anti-Virus 2010", "", 295)
    winwaitactive ("Kaspersky Anti-Virus 2010", "ENDNUTZER-LIZENZVERTRAG FÜR KASPERSKY LAB SOFTWARE")
    ControlClick("Kaspersky Anti-Virus 2010", "", 295)
    winwaitactive ("Kaspersky Anti-Virus 2010", "Kaspersky Security Network")
    ControlClick("Kaspersky Anti-Virus 2010", "", 323)
    Sleep(100) ; verweilzeit
    ControlClick("Kaspersky Anti-Virus 2010", "", 326)
    WinWaitActive("Konfigurationsassistent für Kaspersky Anti-Virus")

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

    ControlClick("Konfigurationsassistent für Kaspersky Anti-Virus", "", 62510)
    sleep(100)
    ControlClick("Konfigurationsassistent für Kaspersky Anti-Virus", "", 49020)
    MsgBox(0, "Fertig!!!", "Ab hier musst du weiter machen !Dann bist du fertig!")
    EndIf

    [/autoit]


    Und für Win 7

    Spoiler anzeigen
    [autoit]

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

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

    AutoIt Version: 3.3.0.0
    Author: Kevin Brach

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

    Script Function:
    Autoinstaller LSC

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

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

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

    ;Auswahlfenster:
    GUICreate("LSC-Computer.de Installer! by Kevin",325,100)
    GUICtrlCreateLabel("Wähle nun aus auf welchem System Installiert werden soll!",10,10)
    $singleButton=GUICtrlCreateButton("Single-Core",30,40,120,50)
    $MultiButton=GUICtrlCreateButton("Multi-Core",150,40,120,50);okay...
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE ;wenn der Benutzer auf das rote X klickt, dann:
    Exit;Beenden
    Case $SingleButton
    $cores=1
    ExitLoop
    Case $MultiButton
    $cores=2
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete()
    ;~ MsgBox(64,"Test: $cores=",$cores)
    Run ("AdbeRdr920_de_DE.exe")
    WinWaitActive("Adobe Reader 9.2 - Assistent")
    Send("!w")
    Send("!i")
    WinWaitActive("Adobe Reader 9.2 - Assistent","Fertigstellen")
    Send("!f")
    ;Fallunterscheidung:Flash
    run("install_flash_player.exe")
    winwaitactive("Adobe Flash Player Plugin Installation: Installiere")
    winwaitactive("Adobe Flash Player Plugin Installation: Fertig")
    controlclick("Adobe Flash Player Plugin Installation: Fertig","",1)
    ;Fallunterscheidung:Nero
    run("Nero-9.4.12.708_lite.exe")
    winwaitactive("Nero 9 Lite - Installation","Willkommen bei der Installation von Nero 9 Lite")
    send("!W")
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Standard-Browser-Suche definieren", 1276)
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Startseite einrichten", 1149)
    send("!w")
    send("!w")
    WinWaitActive("Nero 9 Lite - Installation")
    controlclick("Nero 9 Lite - Installation","Ich akzeptiere die Lizenzbedingungen", 1016)
    send("!w")
    winwaitactive("Nero 9 Lite - Installation","Installationstyp auswählen")
    send("!w")
    WinWaitActive("Nero 9 Lite - Installation","Systemanforderungen")
    controlclick("Nero 9 Lite - Installation","Installieren", 1265)
    Do
    Sleep(100)
    Until ControlCommand("Nero 9 Lite - Installation","",1, "IsEnabled")
    controlclick("Nero 9 Lite - Installation","&Weiter >", 1)
    WinWaitActive("Nero 9 Lite - Installation","Helfen Sie uns, die Nero Software zu verbessern")
    ControlClick("Nero 9 Lite - Installation","&Weiter", 1)
    WinWaitActive("Nero 9 Lite - Installation","Installation erfolgreich durchgeführt")
    ControlClick("Nero 9 Lite - Installation","Installation erfolgreich durchgeführt", 1)
    If $cores=1 Then
    opt("TrayIcomDebug", 1)
    run ("avira_antivir_personal_de.exe")
    send("{SPACE}")
    winwait("Avira AntiVir Personal - Free Antivirus","Um fortzufahren, klicken Sie")
    WinActivate("Avira AntiVir Personal - Free Antivirus","Um fortzufahren, klicken Sie")
    send("!W")
    send("!W")
    send("!a")
    send("!W")
    winwait("Avira AntiVir Personal - Free Antivirus","Ich bestätige, dass ich die Avira AntiVir")
    WinActivate("Avira AntiVir Personal - Free Antivirus","Ich bestätige, dass ich die Avira AntiVir")
    send("{SPACE}")
    send("!w")
    sleep(50)
    send("!w")
    winwaitactive("Avira AntiVir Personal - Free Antivirus Lizenz-Assistenten")
    controlclick("Avira AntiVir Personal - Free Antivirus Lizenz-Assistenten","",1070)
    send("!W")
    winwait("Avira AntiVir Personal - Free Antivirus","Installation beendet")
    controlclick("Avira AntiVir Personal - Free Antivirus","Readme.txt anzeigen", 1034)
    controlclick("Avira AntiVir Personal - Free Antivirus","Fertig stellen", 12325)
    winwait("Konfigurationsassistent")
    controlclick("Konfigurationsassistent","&Weiter", 12324)
    winwait("Konfigurationsassistent","Heuristic")
    controlclick("Konfigurationsassistent","&Weiter", 12324)
    send("!W")
    send("!W")
    winwait("Konfigurationsassistent","Wir empfehlen Ihnen nun eine kurze Systemprüfung")
    send("!W")
    controlclick("Konfigurationsassistent","Fertig stellen", 12325)
    runwait("Update")
    run("Nero-9.4.12.708_lite.exe")
    winwaitactive("Nero 9 Lite - Installation","Willkommen bei der Installation von Nero 9 Lite")
    send("!W")
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Standard-Browser-Suche definieren", 1276)
    controlclick("Nero 9 Lite - Installation","Ask.com(R) als Startseite einrichten", 1149)
    send("!w")
    send("!w")
    WinWaitActive("Nero 9 Lite - Installation")
    controlclick("Nero 9 Lite - Installation","Ich akzeptiere die Lizenzbedingungen", 1016)
    winwaitactive("Nero 9 Lite - Installation","Installationstyp auswählen")
    MsgBox(0, "Fertig!!!", "Bitte Starte den PC neu !")
    Else
    run ("kav9.0.0.736de.exe")
    winwaitactive ("Kaspersky Anti-Virus 2010")
    ControlClick("Kaspersky Anti-Virus 2010", "", 295)
    winwaitactive ("Kaspersky Anti-Virus 2010", "ENDNUTZER-LIZENZVERTRAG FÜR KASPERSKY LAB SOFTWARE")
    ControlClick("Kaspersky Anti-Virus 2010", "", 295)
    winwaitactive ("Kaspersky Anti-Virus 2010", "Kaspersky Security Network")
    ControlClick("Kaspersky Anti-Virus 2010", "", 323)
    Sleep(100) ; verweilzeit
    ControlClick("Kaspersky Anti-Virus 2010", "", 326)
    WinWaitActive("Konfigurationsassistent für Kaspersky Anti-Virus")
    ControlClick("Konfigurationsassistent für Kaspersky Anti-Virus", "", 62510)
    sleep(100)
    ControlClick("Konfigurationsassistent für Kaspersky Anti-Virus", "", 49020)
    MsgBox(0, "Fertig!!!", "Ab hier musst du weiter machen !Geht leider nicht anders....Aber dann bist du fertig!")
    EndIf

    [/autoit]

    Vll kann ja einer was mit den Programm teilen anfangen oder so :D bei mri laufen sie super ! auf XP und Win7 :)

  • Hallo Killerflittchen,

    hast Du schön gemacht.
    Wenn ich darf dann hätte ich noch 2-3 Verbesserungsvorschläge:

    Erstelle beide Scripte in einem und erkenne anhand des Makros @OSVersion um welches BS es sich handelt ...

    Verwende nach Möglichkeit nicht den Befehl Send (fehlerträchtig ) sondern immer ControlSend

    Du kannst auch das Script erkennen lassen, ob es sich um eine Multi-Core Maschine handelt...
    Dann sparst Du Dir die Benutzerabfrage
    Beispiel:

    [autoit]

    #include <WinAPI.au3>

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

    ; GetProcessAffinityMask()
    ; http://msdn.microsoft.com/en-us/library/ms683213(VS.85).aspx
    Global Const $PROCESS_ALL_ACCESS = 0x1F0FFF
    $hProc = _WinAPI_OpenProcess($PROCESS_ALL_ACCESS, False, @AutoItPID)
    $aRet = _WinAPI_GetProcessAffinityMask($hProc)
    MsgBox(0, "", "Anzahl Prozessoren = " & Sqrt($aRet[2]+1))

    [/autoit]


    Was machst Dein Script, wenn jemand abbricht? Bleibt dann die Installation einfach an dem Punkt stehen? Nicht so schön...
    Vielleicht kannst Du das ja abfangen, oder ein Abbrechen gar nicht erst zulassen

    Ach ja, hier ist ein Schreibfehler: opt("TrayIcomDebug", 1) (Du findest sicher den Fehler selber) ... ;)

    Meine Anregungen sollen dich nur anspornen dich nicht auf Deinem Script auszuruhen, sondern es zu verbessern und dabei immer mehr zu lernen ... ;)

    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. ;)

  • Huch danke für den fehler xD

    Hmm das mit dem Prosessor ist interesant !^^ muss ich mir mal überlegen:D vielen dank ist auf jeden fall ne gute idee