benötige Hilfe mit Treeview

  • Hi leute habe mich dran gemacht einen Software Installer zuschreibn.
    Soweit rennt mein script ja auch, nur würde ich es lieber mit treview schreibn.
    Ich habe mir schon einige Beispiele mit treeview angesehn , muss aber sagen ich raff dass nicht so ganz mit dem umsetzen.
    Gibts ein TUT des mir Treeview gut erklärt?
    bzw kann und mag es mir einer von euch erklären anhand meines scriptes?
    denn so wie ich es gemacht habe wird es ein ewig langes script ?(

    Spoiler anzeigen

    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Silent Software Install", 801, 641, -1, -1)
    $pic1 = GUICtrlCreatePic(@ScriptDir & "\8-6.jpg", -1, -1, 801, 641)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ende")
    GUICtrlSetState(-1, $GUI_DISABLE)
    ;$Group1 = GUICtrlCreateGroup("", 8, 0, 257, 633)
    $checkbox1 = GUICtrlCreateCheckbox("X86 Programme silent", 16, 8, 120, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_x86")
    $checkbox2 = GUICtrlCreateCheckbox("Audio/Video", 32, 32, 97, 17)
    GUICtrlSetOnEvent(-1, "_audio")
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $MediaInfo = GUICtrlCreateCheckbox("MediaInfo", 48, 48, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $vlc = GUICtrlCreateCheckbox("Vlc Media Player", 48, 64, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $mp3 = GUICtrlCreateCheckbox("MP3Tag", 48, 80, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox3 = GUICtrlCreateCheckbox("Brennen/DVD", 32, 96, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_brennen")
    $imgburn = GUICtrlCreateCheckbox("ImgBrun", 48, 112, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $cdburnxp = GUICtrlCreateCheckbox("CDBurnXP", 48, 128, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $infrarecorder = GUICtrlCreateCheckbox("InfraRecorder", 48, 144, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $daemon = GUICtrlCreateCheckbox("DaemonToolLite", 48, 160, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $virtaulclone = GUICtrlCreateCheckbox("VirtualCloneDrive", 48, 176, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $browser = GUICtrlCreateCheckbox("Browser", 32, 192, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_browser")
    $firefox = GUICtrlCreateCheckbox("Firefox 4", 48, 208, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox4 = GUICtrlCreateCheckbox("DateiTransfer", 32, 224, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_dateitransfer")
    $filezilla = GUICtrlCreateCheckbox("FileZilla", 48, 240, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $teamdrive = GUICtrlCreateCheckbox("TeamDrive", 48, 256, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox5 = GUICtrlCreateCheckbox("Foto/Grafik", 32, 272, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_foto")
    $gimp = GUICtrlCreateCheckbox("Gimp", 48, 288, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $xnconvert = GUICtrlCreateCheckbox("XnConvert", 48, 304, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $irfanview = GUICtrlCreateCheckbox("IrfanView", 48, 320, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $picasa = GUICtrlCreateCheckbox("Picasa", 48, 336, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox6 = GUICtrlCreateCheckbox("Messagin/Chat", 32, 352, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_messaginchat")
    $mozilla = GUICtrlCreateCheckbox("MozillaThinderbird", 48, 368, 105, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $windowslive = GUICtrlCreateCheckbox("WindowsLiveMail", 48, 384, 113, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $icq = GUICtrlCreateCheckbox("ICQ 7", 48, 400, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $teamviewer = GUICtrlCreateCheckbox("TeamViewer", 48, 416, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox7 = GUICtrlCreateCheckbox("Office", 32, 432, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_office")
    $openoffice = GUICtrlCreateCheckbox("OpenOffice", 48, 448, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $pdfcreator = GUICtrlCreateCheckbox("PDFCreator", 48, 464, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $notepad = GUICtrlCreateCheckbox("Notepad++", 48, 480, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox8 = GUICtrlCreateCheckbox("Sicherheit", 32, 496, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_sicher")
    $spybot = GUICtrlCreateCheckbox("Spybot S&D", 48, 512, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $recuva = GUICtrlCreateCheckbox("Recuva", 48, 528, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $checkbox9 = GUICtrlCreateCheckbox("Tuning/Tweak", 32, 544, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_tuning")
    $ccleaner = GUICtrlCreateCheckbox("CCleaner", 48, 560, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $zip = GUICtrlCreateCheckbox("7-Zip", 48, 576, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $winrar = GUICtrlCreateCheckbox("Winrar4", 48, 592, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $unlocker = GUICtrlCreateCheckbox("Unlocker", 48, 608, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;$Group2 = GUICtrlCreateGroup("", 536, 0, 257, 633)
    $x64 = GUICtrlCreateCheckbox("X64 Programme silent", 630, 8, 129, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $audiovid64 = GUICtrlCreateCheckbox("Audio/Video 64", 646, 32, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $mediainfo64 = GUICtrlCreateCheckbox("MediaInfo64", 672, 48, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $brenn64 = GUICtrlCreateCheckbox("Brenne/DVD 64", 672, 64, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $infra64 = GUICtrlCreateCheckbox("InfraRecorder 64", 672, 80, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $cdburn64 = GUICtrlCreateCheckbox("CDBurnXP 64", 672, 96, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $foto64 = GUICtrlCreateCheckbox("Foto/Grafik 64", 646, 112, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $gimp64 = GUICtrlCreateCheckbox("Gimp 64", 672, 128, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $xnconvert64 = GUICtrlCreateCheckbox("XnConvert 64", 672, 144, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $message64 = GUICtrlCreateCheckbox("Messagin/Chat 64", 646, 160, 113, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $windowslive64 = GUICtrlCreateCheckbox("WindowsliveMail 64", 672, 176, 137, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $tuning64 = GUICtrlCreateCheckbox("TuningTweak 64", 646, 192, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $zip64 = GUICtrlCreateCheckbox("7-Zip 64", 672, 208, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $winrar64 = GUICtrlCreateCheckbox("Winrar64", 672, 224, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $unlocker64 = GUICtrlCreateCheckbox("Unlocker 64", 672, 240, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $virtual64 = GUICtrlCreateCheckbox("VirtualBox 64", 672, 256, 97, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    ;GUICtrlCreateGroup("", -99, -99, 1, 1)
    Global $checkbox

    Global $bninstall = GUICtrlCreateLabel("Install", 288, 8, 44, 24, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 400, 0, "Palatino Linotype")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "start")

    Global $bnexit = GUICtrlCreateLabel("Exit", 456, 8, 31, 26, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 400, 0, "Palatino Linotype")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_ende")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    Func start()
    Local $Msg = MsgBox(32 + 4, "Installation", "Soll mit der Installation begonnen werden ?" & @TAB)
    If $Msg = 7 Then
    ConsoleWrite("Abbruch durch den Nutzer !" & @CRLF)
    Else
    _install()
    EndIf
    EndFunc ;==>start

    Func _install()

    If BitAND(GUICtrlRead($MediaInfo), $GUI_CHECKED) = $GUI_CHECKED Then
    RunWait(@ScriptDir & "\apps\MediaInfo-x86.exe")
    GUICtrlSetState($MediaInfo, $GUI_unCHECKED)
    EndIf
    Sleep(500)
    If BitAND(GUICtrlRead($vlc), $GUI_CHECKED) = $GUI_CHECKED Then
    RunWait(@ScriptDir & "\apps\VLC-1.1.9.exe")
    GUICtrlSetState($vlc, $GUI_unCHECKED)
    EndIf
    Sleep(500)
    If BitAND(GUICtrlRead($unlocker), $GUI_CHECKED) = $GUI_CHECKED Then
    RunWait(@ScriptDir & "\apps\UL-x86.exe")
    GUICtrlSetState($unlocker, $GUI_unCHECKED)
    EndIf
    Sleep(500)

    ;~ Ende der Installation _restartabfrage
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    $iMsgBoxAnswer = MsgBox(3, "OsirisSoftwareInstaller", "Installation ist abgeschlossen" & @CRLF & "Wollen Sie neustarten?")
    Select
    Case $iMsgBoxAnswer = 6 ;Yes
    Shutdown(6)
    Case $iMsgBoxAnswer = 7 ;No
    Exit
    Case $iMsgBoxAnswer = 2 ;Cancel
    GUICtrlSetState(-1, $GUI_enable)
    EndSelect
    EndFunc ;==>_install

    Func _x86()
    For $i = 0 To 38
    If GUICtrlRead($checkbox1) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox1 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox1) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox1 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_x86

    Func _audio()
    For $i = 1 To 3
    If GUICtrlRead($checkbox2) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox2 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox2) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox2 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_audio

    Func _brennen()
    For $i = 1 To 5
    If GUICtrlRead($checkbox3) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox3 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox3) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox3 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_brennen

    Func _browser()
    If GUICtrlRead($browser) = $GUI_CHECKED Then
    GUICtrlSetState($firefox, $GUI_CHECKED)
    Else
    GUICtrlSetState($firefox, $GUI_unCHECKED)
    EndIf
    EndFunc ;==>_browser

    Func _dateitransfer()
    For $i = 1 To 2
    If GUICtrlRead($checkbox4) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox4 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox4) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox4 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_dateitransfer

    Func _foto()
    For $i = 1 To 4
    If GUICtrlRead($checkbox5) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox5 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox5) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox5 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_foto

    Func _messaginchat()
    For $i = 1 To 4
    If GUICtrlRead($checkbox6) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox6 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox6) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox6 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_messaginchat

    Func _office()
    For $i = 1 To 3
    If GUICtrlRead($checkbox7) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox7 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox7) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox7 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_office

    Func _sicher()
    For $i = 1 To 2
    If GUICtrlRead($checkbox8) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox8 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox8) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox8 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_sicher

    Func _tuning()
    For $i = 1 To 4
    If GUICtrlRead($checkbox9) = $GUI_CHECKED Then
    GUICtrlSetState($checkbox9 + $i, $GUI_CHECKED)
    Else
    If GUICtrlRead($checkbox9) = $GUI_unCHECKED Then
    GUICtrlSetState($checkbox9 + $i, $GUI_unCHECKED)
    EndIf
    EndIf
    Next
    EndFunc ;==>_tuning


    Func _ende()
    Exit
    EndFunc ;==>_ende