Installation verschiedener Programme

  • So hier noch mal mein Script mit Euren Änderungen! (Doch ich hatte dein Vorschlag ausprobiert, aber mal abgesehen davon das bei Deinem geposteten Vorschlag der Befehl "EndSelect" gefehlt hat ging er immer noch nicht ;) )
    Case Else war natürlich auch überflüssig! Danke!

    Spoiler anzeigen
    [autoit]


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

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

    AutoIt Version: 3.2.10.0
    Author: EKE

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

    Script Function:
    Software Installer

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

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

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

    ; Start

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

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>

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

    $Form = GUICreate("Bitte auswaehlen", 500, 300)

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

    GUICtrlCreateLabel("Programme:", 10, 10, 120, 20)
    ;Verfügbare Software die angezeigt wird
    $checkbox1 = GUICtrlCreateCheckbox("Apache", 10, 30, 120, 20)
    $checkbox2 = GUICtrlCreateCheckbox("MySQL", 10, 50, 120, 20)
    $checkbox3 = GUICtrlCreateCheckbox("PHP", 10, 70, 120, 20)
    $checkbox4 = GUICtrlCreateCheckbox("Eclipse", 10, 90, 120, 20)
    $checkbox5 = GUICtrlCreateCheckbox("Open Office", 10, 110, 120, 20)

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

    GUICtrlCreateLabel("Installierte Version:", 150, 10)
    ;Versionsnummer die über Registry ausgelesen werden
    $key1 = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\60A26258C8D21CB46BDEA507D590FCCF\InstallProperties", "DisplayVersion")
    $key2 = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\7CCFF8067327BB74BA5D381457A4B3AB\InstallProperties", "DisplayVersion");Mysql5
    $key8 = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\78FFD36025F793A4980CFB7F9E7BABE8\InstallProperties", "DisplayVersion");Mysql4
    $key3 = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-21-1801674531-1958367476-839522115-1003\Products\03C2AF00BB2C2A540B3C6759148E6F2A\InstallProperties", "DisplayVersion")
    $key4 = ("")
    $key5 = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\7F56B5DD5AC74ED4EA7EE7F862FB875F\InstallProperties", "DisplayVersion")

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

    ;Kontrollbutton in der GUI
    $Button1 = GUICtrlCreateButton("Installierte Versionen prüfen", 10, 200, 180, 17, 0)
    $Button2 = GUICtrlCreateButton("Alle", 10, 220, 65, 17, 0)
    $Button3 = GUICtrlCreateButton("Keine", 10, 240, 65, 17, 0)
    $Button4 = GUICtrlCreateButton("Beenden", 200, 270, 65, 17, 0)
    $Button5 = GUICtrlCreateButton("ausgew. Programme installieren", 250, 200, 180, 17, 0)
    $Button6 = GUICtrlCreateButton("Alle", 250, 220, 65, 17, 0)
    $Button7 = GUICtrlCreateButton("Keine", 250, 240, 65, 17, 0)
    GUICtrlSetState ($Button5,$GUI_DISABLE)
    GUICtrlSetState ($Button6,$GUI_DISABLE)
    GUICtrlSetState ($Button7,$GUI_DISABLE);GUI_DISABLE = ausgrauen eines Buttons/Checkbox etc

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

    GUICtrlCreateLabel("Updates:", 400, 10)
    ;Update Buttons
    $Update1 = GUICtrlCreateButton("Update", 400, 30, 65, 17, 0)
    $Update2 = GUICtrlCreateButton("Update", 400, 50, 65, 17, 0)
    $Update3 = GUICtrlCreateButton("Update", 400, 70, 65, 17, 0)
    $Update4 = GUICtrlCreateButton("Update", 400, 90, 65, 17, 0)
    $Update5 = GUICtrlCreateButton("Update", 400, 110, 65, 17, 0)
    GUICtrlSetState ($Update2,$GUI_DISABLE)
    GUICtrlSetState ($Update3,$GUI_DISABLE)
    GUICtrlSetState ($Update4,$GUI_DISABLE)
    GUICtrlSetState ($Update5,$GUI_DISABLE)

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

    GUICtrlCreateLabel("Installation:",300,10)
    ;Installation Checkbox
    $install1 = GUICtrlCreateCheckbox("", 315, 30, 65, 17, 0)
    $install2 = GUICtrlCreateCheckbox("", 315, 50, 65, 17, 0)
    $install3 = GUICtrlCreateCheckbox("", 315, 70, 65, 17, 0)
    $install4 = GUICtrlCreateCheckbox("", 315, 90, 65, 17, 0)
    $install5 = GUICtrlCreateCheckbox("", 315, 110, 65, 17, 0)
    GUICtrlSetState ($install1,$GUI_DISABLE)
    GUICtrlSetState ($install2,$GUI_DISABLE)
    GUICtrlSetState ($install3,$GUI_DISABLE)
    GUICtrlSetState ($install4,$GUI_DISABLE)
    GUICtrlSetState ($install5,$GUI_DISABLE)

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

    GUISetState() ; will display an dialog box with checkbox
    ; Run the GUI until the dialog is closed

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

    $wert = 220
    WinSetTrans($Form, "", $wert)

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

    While 1
    $msg = GUIGetMsg()

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

    Switch $msg

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

    Case $Button1
    ;Prüfen ob eines der Programme vorhanden ist
    GUISetState (@SW_SHOW)

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

    Select
    Case GUICtrlRead($Checkbox1) = 1
    GUICtrlCreateLabel($key1, 150, 30, 120, 20)
    If $key1 <= 2.2 Then
    GUICtrlSetState ($Update1, $GUI_ENABLE)
    ElseIf $key1 = () Then ; Problem: wenn kein Eintrag vorhanden ist, soll die Checkbox (install1) aktiviert werden, aber ich weiß nicht wie man der GUI sagt "wenn kein Inhalt/Datein nciht vorhanden, dann..."
    GUICtrlSetState ($install1, $GUI_ENABLE)
    GUICtrlSetState ($Button5, $GUI_ENABLE)
    GUICtrlSetState ($Button6, $GUI_ENABLE)
    GUICtrlSetState ($Button7, $GUI_ENABLE)
    EndIf
    EndSelect

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

    Select
    Case GUICtrlRead($Checkbox2) = 1
    GUICtrlCreateLabel($key8 & $key2, 150, 50, 120, 20)
    If $key2 or $key8 <= 6.1 Then
    GUICtrlSetState ($Update2, $GUI_ENABLE)
    ElseIf $key2 =() Then
    GUICtrlSetState ($install2, $GUI_ENABLE)
    GUICtrlSetState ($Button5, $GUI_ENABLE)
    GUICtrlSetState ($Button6, $GUI_ENABLE)
    GUICtrlSetState ($Button7, $GUI_ENABLE)
    EndIf
    EndSelect

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

    Select
    Case GUICtrlRead($Checkbox3) = 1
    GUICtrlCreateLabel($key3, 150, 70, 120, 20)
    If $key3 <=5.1 Then
    GUICtrlSetState ($Update3, $GUI_ENABLE)
    ElseIf $key3 =() Then
    GUICtrlSetState ($install3, $GUI_ENABLE)
    GUICtrlSetState ($Button5, $GUI_ENABLE)
    GUICtrlSetState ($Button6, $GUI_ENABLE)
    GUICtrlSetState ($Button7, $GUI_ENABLE)
    EndIf
    EndSelect

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

    Select
    Case GUICtrlRead($Checkbox4) = 1
    GUICtrlCreateLabel($key4, 150, 90, 120, 20)
    If $key4 >= 1.0 Then
    GUICtrlSetState ($Update4, $GUI_ENABLE)
    ElseIf $key4 =("") Then
    GUICtrlSetState ($install4, $GUI_ENABLE)
    GUICtrlSetState ($Button5, $GUI_ENABLE)
    GUICtrlSetState ($Button6, $GUI_ENABLE)
    GUICtrlSetState ($Button7, $GUI_ENABLE)
    EndIf
    EndSelect

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

    Select
    Case GUICtrlRead($Checkbox5) = 1
    GUICtrlCreateLabel($key5, 150, 110, 120, 20)
    If $key5 >= 1.0 Then
    GUICtrlSetState ($Update5, $GUI_ENABLE)
    ElseIf $key5 =("") Then
    GUICtrlSetState ($install5, $GUI_ENABLE)
    GUICtrlSetState ($Button5, $GUI_ENABLE)
    GUICtrlSetState ($Button6, $GUI_ENABLE)
    GUICtrlSetState ($Button7, $GUI_ENABLE)
    EndIf
    EndSelect
    ;Prüfung zu Ende

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

    GUISetState(@SW_RESTORE)

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

    Case $Button2
    For $i = $Checkbox1 To $Checkbox5
    GUICtrlSetState($i, $GUI_Checked)
    Next
    Case $Button3
    For $i = $Checkbox1 To $Checkbox5
    GUICtrlSetState($i, $GUI_Unchecked)
    Next
    Case $Button4
    Exit

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

    Case $Button5
    GUISetState (@SW_SHOW)
    Select
    Case GUICtrlRead($install1) = $GUI_CHECKED and $GUI_ENABLE
    RunWait("P:\autoit\bla.exe")
    Case GUICtrlRead($install2) = $GUI_CHECKED and $GUI_ENABLE
    RunWait("P:\autoit\bla.exe")
    Case GUICtrlRead($install3) = $GUI_CHECKED and $GUI_ENABLE
    RunWait("P:\autoit\bla.exe")
    Case GUICtrlRead($install4) = $GUI_CHECKED and $GUI_ENABLE
    RunWait("P:\autoit\bla.exe")
    Case GUICtrlRead($install5) = $GUI_CHECKED and $GUI_ENABLE
    RunWait("P:\autoit\bla.exe")
    EndSelect

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

    GUISetState(@SW_RESTORE)

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

    Case $Button4
    Exit

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

    Case $Button6
    ;Sollte eigentlich so sein, dass nur die aktiven Fenster angeklickt werden, er markiert aber alle -.-"
    Select
    Case GUICtrlRead($install1) = $GUI_ENABLE
    ;Hier GUICtrlGetState nehmen :)
    Case BitAnd(GUICtrlGetState($install1) , $GUI_ENABLE)
    EndSelect

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

    Case $Button7
    ; Hier natürlich das selbe wie Button6 nur umgekehrt
    Select
    Case GUICtrlRead($install1) = $GUI_ENABLE
    GUICtrlSetState($install1, $GUI_Unchecked)
    Case GUICtrlRead($install2) = $GUI_ENABLE
    GUICtrlSetState($install2, $GUI_Unchecked)
    Case GUICtrlRead($install3) = $GUI_ENABLE
    GUICtrlSetState($install3, $GUI_Unchecked)
    Case GUICtrlRead($install4) = $GUI_ENABLE
    GUICtrlSetState($install4, $GUI_Unchecked)
    Case GUICtrlRead($install5) = $GUI_ENABLE
    GUICtrlSetState($install5, $GUI_Unchecked)
    EndSelect

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

    Case $Update1
    Run ("P:\autoit\bla.exe")

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

    Case $Update2
    ;HIer sollte eigentlich ein neues GUI aufgehen mit dem man über die Auswahl von MySQL 4 oder 5 entscheiden kann!

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

    Case $Update3
    Run ("P:\autoit\bla.exe")

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

    Case $Update4
    Run ("P:\autoit\bla.exe")

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

    Case $Update5
    Run ("P:\autoit\bla.exe")

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

    ExitLoop

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

    $output = ''

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

    For $x = 1 To 5 Step 1
    If GUICtrlRead(Eval("check" & $x)) = $GUI_CHECKED Then $output = $output & ControlGetText($Form, '', Eval("check" & $x)) & @CRLF
    Next
    msgbox(0,"",$output)
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von cphowdy (7. April 2008 um 16:44)

  • Ich hab mir grad alles posts von dem Thema durchgelesen und festgestellt das ich eig n Monolog führe!
    So viel zu tun oder was?!