Checkboxen abgleich über Progressbar

  • hallo leute

    habe hier ein problem wo ich nicht weiter komme.
    habe sufu und hilfe genutzt und auch was gefunden bloss geht das nicht so recht.
    das testprog um einen prozess zu simulieren habe ich angewand!

    hier das testprog

    Spoiler anzeigen

    so.

    mein Problem besteht da drin das ich 14 checkboxen habe, die wenn angehakt jeweils eine installation darstellen sollen. wenn zb. 2 angehackt und dann auf START gedruckt worden ist, soll er diese nacheinander ablaufen und jetz kommts!!! in der Progressbar anzeigen heist......

    1. installation zuende müsste der statusbalken bei der hälfte sein, 2. installation ganz voll.

    hier mal mein gui

    Spoiler anzeigen


    Bitte helft mir ich weis nicht wo da mein fehler sein soll weil starten tut er das prog ja

    Danke für jede hilfe

    2 Mal editiert, zuletzt von Kamin (11. September 2009 um 15:18)

  • Übeleg doch mal genau:
    Checken wie viele INSGESAMT geklickt sind.
    Das in einen Bruch.
    10 (Anzahl der Geklickten)
    14 (Anzahl Gesamt)
    Das heißt der Progressbar geht immer um 1/14 voller, wenn du eine Installation beendest.

    [autoit]

    GUICtrlSetData ($ProgressBar, 1/14)

    [/autoit]
  • ja mom du redest jetz davon das alle 14 ausgewählt werden
    ich meinte aber wenn man zb die 3,7,9 auswählt das er von diesen 3 den staus bekommt

  • 3 7 9

    Also wenn Du die minimal mögliche Aktivierungsmenge (eine Combobox) durch die maximal mögliche Aktivierungsmenge (vierzehn Comboboxen) dividierst erhälst Du den Grundwert X

    X * Anzahl der tatsächlichen Aktivierungsmenge gleich Y

    3 von 14 sind dann 0,214
    7 von 14 sind dann 0,500
    9 von 14 sind dann Y = 9*(1/14)

    Ist das rechnerisch verständlich? Ich meine ja, da "Grundschulstoff" ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • ok sagt mir mal bitte wie ich den code schreiben soll, das hier hab ich schon:

    Spoiler anzeigen
  • Mal davon ausgehen, dass alle Steuerelemente in einem Array sind:

    [autoit]


    Global $checked = 0

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

    For $i = 1 To 14
    If BitAND(GUICtrlRead($checkbox[$i]), $GUI_CHECKED) = $GUI_Checked Then Global $checked = $checked + 1
    Next

    [/autoit]

    und dann nach jeder Installation:

    [autoit]


    GUICtrlSetState($progress, GUICtrlRead($progress) + $i / 14)

    [/autoit]

    Nicht ausprobiert, einfach schnell zusammengeschrieben ;)

  • Hallo @Arkaneus,

    müsste der 2. eizufügenden Teil dann nicht

    [autoit]

    For $i = 1 To $checked
    GUICtrlSetState($progress, GUICtrlRead(100 / $checked * $i )
    Next

    [/autoit]

    lauten?

    mfg (Auto)Bert

  • Hm, stimmt, meins ist wohl falsch...

    Aber ich glaube, nach jeder install müsste

    [autoit]

    GUICtrlSetState($progress, GUICtrlRead($progress)+ 1 / 14 )

    [/autoit]

    aufgerufen werden. Keine Ahnung, wie ich vorhin auf das $i gekommen bin^^ Oder müssen die 14-tel erst in 100-tel umgewandelt werden oder sowas?

  • Hallo Kamin,

    ich hab Dein Script mal etwas gekürzt, und leicht korrigiert.
    Ist so nicht perfekt, aber es verdeutlicht, wie das mit der Progressbar funktioniert.
    Diese kennt nur Werte zwischen 0 und 100.
    Demnach musst Du Deinen Teiler auch durch 100 teilen und dann auf eine ganze Zahl runden.

    Spoiler anzeigen
    [autoit]

    Opt('MustDeclareVars', 1)

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <SendMessage.au3>

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

    #Region ### START Koda GUI section ### Form=c:\users\chef\desktop\projekt\installgui.kxf
    Global $Checkbox[15], $nMsg
    Global $Form2 = GUICreate("Automatisches Installationspacket für Vista", 1085, 709, 301, 131)

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

    Global $Start = GUICtrlCreateButton("Start", 840, 592, 209, 41)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")

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

    $Checkbox[1] = GUICtrlCreateCheckbox(" test1 ", 48, 88, 241, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[2] = GUICtrlCreateCheckbox(" test2", 48, 128, 233, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[3] = GUICtrlCreateCheckbox(" test3 ", 48, 168, 241, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[4] = GUICtrlCreateCheckbox(" test4 ", 48, 208, 217, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[5] = GUICtrlCreateCheckbox(" test5 ", 48, 248, 297, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[6] = GUICtrlCreateCheckbox(" test6 ", 48, 608, 409, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[7] = GUICtrlCreateCheckbox(" test7 ", 48, 288, 153, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[8] = GUICtrlCreateCheckbox(" test8", 48, 328, 273, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[9] = GUICtrlCreateCheckbox("test9 ", 48, 568, 177, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[10] = GUICtrlCreateCheckbox(" test10 ", 48, 368, 225, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[11] = GUICtrlCreateCheckbox("test11 ", 48, 408, 193, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[12] = GUICtrlCreateCheckbox("test12 ", 48, 448, 137, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[13] = GUICtrlCreateCheckbox(" test13", 48, 488, 121, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox[14] = GUICtrlCreateCheckbox(" test14 ", 48, 528, 113, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    Global $Vista_Light = GUICtrlCreateButton("Hier mit kannst du message 1", 456, 88, 593, 33)
    GUICtrlSetFont(-1, 8, 800, 2, "Comic Sans MS")
    Global $Vista_Normal = GUICtrlCreateButton("Hier mit kannst du message 2", 456, 136, 593, 33)
    GUICtrlSetFont(-1, 8, 800, 2, "Comic Sans MS")
    Global $Pic1 = GUICtrlCreatePic("C:\Users\Chef\Pictures\01831_greensimplicity_1920x1080.jpg", 0, 0, 1084, 708, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    Global $Label1 = GUICtrlCreateLabel("Hallo, ", 536, 240, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    Global $Label2 = GUICtrlCreateLabel("bitte klickt das an was ihr benötigt.", 536, 279, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    Global $progress1 = GUICtrlCreateProgress(48, 672, 1006, 17, $PBS_SMOOTH)
    Global $Label3 = GUICtrlCreateLabel("Es wird Automatisch installiert! ", 536, 318, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    Global $Label4 = GUICtrlCreateLabel("Viel Spaß !!! ", 536, 357, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox[1]
    Case $Checkbox[2]
    Case $Start
    _Start()
    Case $Checkbox[3]
    Case $Checkbox[4]
    Case $Checkbox[5]
    Case $Checkbox[6]
    Case $Checkbox[7]
    Case $Checkbox[8]
    Case $Checkbox[9]
    Case $Checkbox[10]
    Case $Checkbox[11]
    Case $Checkbox[12]
    Case $Checkbox[13]
    Case $Checkbox[14]
    Case $Vista_Light
    Case $Vista_Normal
    EndSwitch
    WEnd

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

    Func _Start()
    Local $checked = 0
    For $i = 1 To 14
    If BitAND(GUICtrlRead($checkbox[$i]), $GUI_CHECKED) Then $checked += 1
    Next
    MsgBox(0, '', "Es sind "&$checked &" Checkbox(en) angeklickt" )
    For $i = 1 To $checked
    GUICtrlSetData($progress1, Floor($i*(100/$checked)))
    Sleep(2000)
    Next
    EndFunc ;==>_Start

    [/autoit]

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

  • Hallo Arkaneus,

    bei der Installation sollen ja nur die tatsächlich ausgewählten Checkboxen berücksichtigt werden, von daher ist der konstante Wert 14 auf jeden Fall durch die Variable $checked zu ersetzen. Außerdem müsstest du wenn du den Fortschritt zu dem bereits erreichten addieren willst, die Rechenregel Punkt vor Strich beachten und da der Progress in % angegeben wird dies mal 100 nehmen

    =>

    [autoit]

    GUICtrlSetState($progress, GUICtrlRead($progress)+ (100 / $checked) )

    [/autoit]

    bei mir hat sich beim kopieren leider auch ein Fehler eingeschlichen es müsste heissen:

    [autoit]

    For $i = 1 To $checked
    ;hier die entspechenden Installationen aufrufen
    GUICtrlSetState($progress, 100 / $checked * $i )
    Next

    [/autoit]

    @Kamin, einfacher wäre es wenn du dein bisheriges Skript postest,

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (11. September 2009 um 19:34)

  • Hallo zusammen.

    Habe mir einiges bei Euch abgeschaut, aber so sollte es auch möglich sein, oder?

    test2 und test3 bitte zusammen auswählen und nur die beiden, damit Du siehst das man so z. B. zwei Programme ausführen könnte. Aber Du kannst auch alle anderenButton austesten, nur haben die normale Dummy-Daten.

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <SendMessage.au3>
    #Region ### START Koda GUI section ### Form=c:\users\chef\desktop\projekt\installgui.kxf
    $Form2 = GUICreate("Automatisches Installationspacket für Vista", 1085, 709, 301, 131)
    $Checkbox1 = GUICtrlCreateCheckbox(" test1 ", 48, 88, 241, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox2 = GUICtrlCreateCheckbox(" test2", 48, 128, 233, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Start = GUICtrlCreateButton("Start", 840, 592, 209, 41)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox3 = GUICtrlCreateCheckbox(" test3 ", 48, 168, 241, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Checkbox4 = GUICtrlCreateCheckbox(" test4 ", 48, 208, 217, 25)
    GUICtrlSetFont(-1, 12, 800, 2, "Comic Sans MS")
    $Vista_Light = GUICtrlCreateButton("Hier mit kannst du message 1", 456, 88, 593, 33)
    GUICtrlSetFont(-1, 8, 800, 2, "Comic Sans MS")
    $Vista_Normal = GUICtrlCreateButton("Hier mit kannst du message 2", 456, 136, 593, 33)
    GUICtrlSetFont(-1, 8, 800, 2, "Comic Sans MS")
    $Pic1 = GUICtrlCreatePic("C:\Users\Chef\Pictures\01831_greensimplicity_1920x1080.jpg", 0, 0, 1084, 708, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Label1 = GUICtrlCreateLabel("Hallo, ", 536, 240, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label2 = GUICtrlCreateLabel("bitte klickt das an was ihr benötigt.", 536, 279, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Progress1 = GUICtrlCreateProgress(48, 672, 1006, 17)
    $Label3 = GUICtrlCreateLabel("Es wird Automatisch installiert! ", 536, 318, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label4 = GUICtrlCreateLabel("Viel Spaß !!! ", 536, 357, 429, 39)
    GUICtrlSetFont(-1, 18, 800, 2, "Comic Sans MS")
    GUICtrlSetBkColor(-1, 0xFF0000)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Start
    $comboaktiv_1 = GUICtrlRead($Checkbox1)
    $comboaktiv_2 = GUICtrlRead($Checkbox2)
    $comboaktiv_3 = GUICtrlRead($Checkbox3)
    $comboaktiv_4 = GUICtrlRead($Checkbox4)

    $ted = $comboaktiv_1 & $comboaktiv_2 & $comboaktiv_3 & $comboaktiv_4

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

    if $ted ="1444" then MsgBox(0, "Checkboxauswertung","Checkbox 1 ist alleine aktiv")
    If $ted ="4144" then MsgBox(0, "Checkboxauswertung","Checkbox 2 ist alleine aktiv")
    If $ted ="1144" then MsgBox(0, "Checkboxauswertung","Checkbox 1 und 2 sind aktiv") ;
    If $ted ="4414" then MsgBox(0, "Checkboxauswertung","Checkbox 3 ist alleine aktiv")
    If $ted ="1414" then MsgBox(0, "Checkboxauswertung","Checkbox 1 und 3 sind aktiv")
    If $ted ="4114" then _start_1()
    If $ted ="1114" then MsgBox(0, "Checkboxauswertung","Checkbox 1 bis 3 sind aktiv")
    If $ted ="4441" then MsgBox(0, "Checkboxauswertung","Checkbox 4 ist alleine aktiv")
    If $ted ="1441" then MsgBox(0, "Checkboxauswertung","Checkbox 1 und 4 sind aktiv")
    If $ted ="4141" then MsgBox(0, "Checkboxauswertung","Checkbox 2 und 4 sind aktiv")
    If $ted ="1141" then MsgBox(0, "Checkboxauswertung","Checkbox 1, 2 und 4 sind aktiv")
    If $ted ="4411" then MsgBox(0, "Checkboxauswertung","Checkbox 3 und 4 sind aktiv")
    If $ted ="1411" then MsgBox(0, "Checkboxauswertung","Checkbox 1, 3 und 4 sind aktiv")
    If $ted ="4111" then MsgBox(0, "Checkboxauswertung","Checkbox 2, 3 und 4 sind aktiv")
    If $ted ="1111" then MsgBox(0, "Checkboxauswertung","Checkbox 1 bis 4 sind aktiv")
    If $ted ="4444" then MsgBox(0, "Checkboxauswertung","Es ist keine Checkbox aktiv")

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

    Case $Vista_Light
    MsgBox(0,"Info", " Vista Light wurde ausgewählt")

    Case $Vista_Normal
    Msgbox(0,"Info", "Vista Normal wurde ausgewählt.")
    EndSwitch
    WEnd

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

    Opt('MustDeclareVars', 1)

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

    Func _Start_1()
    Local $checked = 2
    Local $toks = 1

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

    While 1
    if $toks = 1 Then Msgbox(0,"","Prog 1 instaliert")
    GUICtrlSetData($progress1, Floor($toks*(100/$checked)))
    $toks = $toks +1
    Sleep(2000)

    if $toks = 2 Then Msgbox(0,"","Prog 2 instaliert")
    GUICtrlSetData($progress1, Floor($toks*(100/$checked)))
    $toks = $toks -1
    ExitLoop
    Sleep(2000)
    WEnd

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

    EndFunc ;==>_Start

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo Alina,

    damit du flexibler in der Anzahl Deiner Checkboxen bist,
    würde ich das mit einem Array und einer For-Schleife machen...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Checkboxauswertung ",150,220)
    Global $ted, $count
    Global $cb[11] = [11, _
    GUICtrlCreateCheckbox("Box 1", 10, 10), _
    GUICtrlCreateCheckbox("Box 2", 10, 30), _
    GUICtrlCreateCheckbox("Box 3", 10, 50), _
    GUICtrlCreateCheckbox("Box 4", 10, 70), _
    GUICtrlCreateCheckbox("Box 5", 10, 90), _
    GUICtrlCreateCheckbox("Box 6", 10, 110), _
    GUICtrlCreateCheckbox("Box 7", 10, 130), _
    GUICtrlCreateCheckbox("Box 8", 10, 150), _
    GUICtrlCreateCheckbox("Box 9", 10, 170), _
    GUICtrlCreateCheckbox("Box 10", 10, 190)]

    $Button = GUICtrlCreateButton("OK",75,20,50,50)
    GUICtrlSetState(-1, $GUI_FOCUS) ; "OK" - Button im Fokus
    GUISetState()

    Example()

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

    Func Example()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button
    $ted = ""
    $count = 0
    For $i = 1 To UBound($cb)-1
    IF BitAND(GUICtrlRead($cb[$i]),$GUI_CHECKED) Then
    $ted &= $i&","
    $count += 1
    EndIf
    Next
    Switch $count
    Case 0
    MsgBox(0, '',"Es sind keine Checkboxen aktiv")
    Case 1
    MsgBox(0, '',"Die Checkbox "&StringTrimRight($ted,1)&" ist aktiv")
    Case Else
    MsgBox(0, '',"Die Checkboxen "&StringTrimRight($ted,1)&" sind aktiv")
    EndSwitch
    EndSelect
    WEnd
    EndFunc

    [/autoit]

    Edit: da hatte sich doch glatt noch ein Fehler eingeschlichen.

    Edit2: so, jetzt fallen mir auf die Schnelle keine Verbesserungen mehr ein :)

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

    3 Mal editiert, zuletzt von Schnuffel (12. September 2009 um 08:58)

  • Sowas ?

    Spoiler anzeigen
    [autoit]

    Global $iMaxCheckBox=14
    Global $iChecked=0

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

    Global $hCheckBox[$iMaxCheckBox+1]
    $hGui=GUICreate("Gui 1",240,$iMaxCheckBox*15+50)
    For $i= 1 To $iMaxCheckBox
    $hCheckBox[$i]=GUICtrlCreateCheckbox("CheckBox " & $i,20,$i*15,200,15)
    Next
    Global $hButton=GUICtrlCreateButton("Start",20,$iMaxCheckBox*15+20,200,20)
    GUISetState(@SW_SHOW, $hGui)

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

    Global $hChild=GUICreate("Gui 2",400,200)
    Global $hProgress1=GUICtrlCreateProgress(10,10,380,10)
    Global $hProgress2=GUICtrlCreateProgress(10,30,380,10)
    Global $hProgress3=GUICtrlCreateProgress(10,50,380,10)
    Global $hLabel1=GUICtrlCreateLabel("",10,70,380,20)
    Global $hLabel2=GUICtrlCreateLabel("",10,100,380,20)
    GUISetState(@SW_HIDE, $hChild)

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $hButton
    ExitLoop
    EndSwitch
    Sleep(10)
    WEnd

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

    GUISetState(@SW_HIDE, $hGui)
    GUISetState(@SW_SHOW, $hChild)

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

    For $i=1 To $iMaxCheckBox
    If GUICtrlRead($hCheckBox[$i]) = 1 Then $iChecked+=1
    Next

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

    For $iInstallationsSchritt=1 To $iChecked
    For $iEinzelneInstallationsSchritt=1 To 100 Step 5
    GUICtrlSetData($hProgress1, ($iInstallationsSchritt * 100) / $iChecked)
    GUICtrlSetData($hProgress2, (($iInstallationsSchritt-1) * 100 / $iChecked) + (100 / $iChecked) / 100 * $iEinzelneInstallationsSchritt)
    GUICtrlSetData($hProgress3, $iEinzelneInstallationsSchritt)
    GUICtrlSetData($hLabel1,"Gesammte Installation " & $iInstallationsSchritt & " / " & $iChecked & " - " & Round((($iInstallationsSchritt-1) * 100 / $iChecked) + (100 / $iChecked) / 100 * $iEinzelneInstallationsSchritt) & "%")
    GUICtrlSetData($hLabel2,"Aktuelle Installation " & $iEinzelneInstallationsSchritt & "%")
    Sleep(100)
    If GUIGetMsg() = -3 Then Exit
    Next
    Next

    [/autoit]
  • so leute ich werde jetz mal alle nacheinander durchgehen und mal gucken was ich brauche melde mich wenn was nicht stimmt oder total stimmt ^^

    danke erst mal für die hilfe

  • also ich hab da jetzt einiges durchprobiert, aber egal wie ich es mache funktioniert es nicht so wie es soll?

    hier mal mein script auch auf die gefahr hin das ich mich massiv blamiere :D :

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    $Form1_1 = GUICreate("AVP Installationsmenü", 451, 540, 287, 194)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; deklariert das beim klicken des X die Funktion "Closeclicked" geschehen soll
    HotKeySet("^!x", "endebutton") ; Notfall-Exit per STRG + ALT + X
    $Group1 = GUICtrlCreateGroup("Elsa Installation", 24, 48, 193, 105)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Global $Checkbox[24], $nMsg
    $checkbox[1] = GUICtrlCreatecheckbox("BK.bat starten", 248, 344, 160, 17)
    $checkbox[2] = GUICtrlCreatecheckbox("Elsa installieren", 32, 72, 160, 17)
    $checkbox[3] = GUICtrlCreatecheckbox("Elsa Anpassungen", 32, 96, 160, 17)
    $checkbox[4] = GUICtrlCreatecheckbox("SVGView installieren", 32, 120, 160, 17)
    $checkbox[5] = GUICtrlCreatecheckbox("Benutzer einrichten", 248, 72, 160, 17)
    $checkbox[6] = GUICtrlCreatecheckbox("BS-Hintergrund rot", 248, 96, 160, 17)
    $checkbox[7]= GUICtrlCreatecheckbox("Kaspersky installieren", 248, 392, 160, 17)
    $checkbox[8] = GUICtrlCreatecheckbox("BS-Hintergrund klassisch", 248, 120, 160, 17)
    $checkbox[9] = GUICtrlCreatecheckbox("BGInfo starten", 248, 368, 160, 17)
    $checkbox[10] = GUICtrlCreatecheckbox("IE SSL 2.0", 32, 352, 160, 17)
    $checkbox[11] = GUICtrlCreatecheckbox("Java Update deaktivieren", 248, 168, 160, 17)
    $checkbox[12] = GUICtrlCreatecheckbox("FF Profil-Installation", 32, 304, 160, 17)
    $checkbox[13] = GUICtrlCreatecheckbox("Popup-Blocker Archiv", 32, 328, 160, 17)
    $checkbox[14] = GUICtrlCreatecheckbox("IE SSL 2.0 + Proxy Kennwort", 32, 376, 184, 17)
    $checkbox[15] = GUICtrlCreatecheckbox("Flash-Player IE installieren", 32, 400, 160, 17)
    $checkbox[16] = GUICtrlCreatecheckbox("€-Währungstool deaktivieren", 248, 144, 160, 17)
    $checkbox[17] = GUICtrlCreatecheckbox("Citrix-Einrichtung", 248, 192, 160, 17)
    $checkbox[18] = GUICtrlCreatecheckbox("Opticlient Fehler beheben", 248, 216, 160, 17)
    $checkbox[19] = GUICtrlCreatecheckbox("Druckwarteschl. neustarten", 248, 416, 160, 17)
    $checkbox[20] = GUICtrlCreatecheckbox("SAP Buchhaltung installieren", 32, 200, 160, 17)
    $checkbox[21] = GUICtrlCreatecheckbox("SAP Logon einrichten", 32, 224, 160, 17)
    $checkbox[22] = GUICtrlCreatecheckbox("Hardcopy registrieren", 248, 240, 160, 17)
    $checkbox[23] = GUICtrlCreatecheckbox("Outlook einrichten", 248, 264, 160, 17)

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

    $Group2 = GUICtrlCreateGroup("SAP Installation", 24, 176, 193, 81)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("Browser Installation", 24, 280, 193, 153)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Benutzer-Profil", 240, 48, 185, 249)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group5 = GUICtrlCreateGroup("Sonstiges", 240, 320, 177, 129)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $Button1 = GUICtrlCreateButton("Start", 24, 472, 100, 25)
    $Button2 = GUICtrlCreateButton("Beenden", 152, 472, 100, 25)
    $Button3 = GUICtrlCreateButton("Zurücksetzen", 280, 472, 100, 25)

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

    Global $progress = GUICtrlCreateProgress(24, 510, 356, 17)

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

    $Label1 = GUICtrlCreateLabel("Welche Installationen sollen durchgeführt werden?", 32, 16, 243, 17)

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

    GUISetState(@SW_SHOW)

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

    GUICtrlSetOnEvent($Button1, "startbutton") ;deklariert das die Funktion "startbutton" geschehen soll wenn der Button gedrückt wird.
    GUICtrlSetOnEvent($Button2, "endebutton") ;deklariert das die Funktion "endebutton" geschehen soll wenn der Button gedrückt wird.
    GUICtrlSetOnEvent($Button3, "resetbutton") ;deklariert das die Funktion "resetbutton" geschehen soll wenn der Button gedrückt wird.
    HotKeySet("^!x", "endebutton") ; Notfall-Exit per STRG + ALT + X

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

    While 1
    Sleep(1000) ; Im Leerlauf bummeln
    WEnd

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

    Func CLOSEClicked() ;schliesst beim klicken des X das Fenster
    Exit
    EndFunc

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

    Func startbutton() ; startet den Ablauf der Installationen nach Prüfung ob die checkboxen ausgewählt wurden

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

    MsgBox(48, "Installationsstart", "Die ausgewählten Installationen starten nun!" & @CR & @CR & "Ein Abbruch ist über STRG + ALT + X möglich!" )

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

    local $checked = 0

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

    For $i = 1 To 23

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

    If BitAND(GUICtrlRead($checkbox[$i]), $GUI_CHECKED) Then $checked += 1

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

    Next

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

    MsgBox(0, '', "Es sind "&$checked &" Checkbox(en) angeklickt" )

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

    If BitAND (GUICtrlRead($checkbox[5]), $GUI_CHECKED) And BitAND (GUICtrlRead($checkbox[17]), $GUI_CHECKED) Then ; prüft ob die Auswahl plausibel ist und gibt falls dem nicht so ist eine Fehlermeldung aus und bricht ab.

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

    MsgBox(16, "Fehler bei der Auswahl", "Die Punkte Benutzer einrichten und Citrix-Einrichtung"& @CR & "können nicht zusammen ausgewählt werden."& @CR & @CR & "Der Ablauf wird abgebrochen!")
    return 0
    EndIf

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

    If BitAND (GUICtrlRead($checkbox[6]), $GUI_CHECKED) And BitAND (GUICtrlRead($checkbox[8]), $GUI_CHECKED) Then ; prüft ob die Auswahl plausibel ist und gibt falls dem nicht so ist eine Fehlermeldung aus und bricht ab.

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

    MsgBox(16, "Fehler bei der Auswahl", "Die Punkte BS-Hintergrund rot und BS-Hintergrund klassisch"& @CR & "können nicht zusammen ausgewählt werden."& @CR & @CR & "Der Ablauf wird abgebrochen!")
    return 0
    EndIf

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

    If BitAND (GUICtrlRead($checkbox[5]), $GUI_CHECKED) then ; Variablen mit Benutzerdaten für lokale Installation als Administrator füllen
    $Benutzer_1 = InputBox ( "Benutzereinrichtung Windows", "Bitte geben Sie den Benutzernamen ein:" , "", "", 300, 100 )
    $Domaene = InputBox ( "Benutzereinrichtung Windows", "Bitte geben Sie die Domäne ein:" , "", "", 300, 100 )
    sleep(1000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[17]), $GUI_CHECKED) then ; Variablen mit Benutzerdaten für Citrix-Installation füllen
    $Benutzer_2 = InputBox ( "Benutzereinrichtung Citrix", "Bitte geben Sie den Benutzernamen ein:" , "", "", 300, 100 )
    $Kennwort_2 = InputBox ( "Benutzereinrichtung Citrix", "Bitte geben Sie das Kennwort ein:" , "", "*", 300, 100 )
    sleep(1000)

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[23]), $GUI_CHECKED) then ; Variablen mit Benutzerdaten für Outlook-Einrichtung füllen
    $Benutzer_3 = InputBox ( "Benutzereinrichtung Outlook", "Bitte geben Sie den Benutzernamen ein:" , "", "", 300, 100 )
    $Kennwort_3 = InputBox ( "Benutzereinrichtung Outlook", "Bitte geben Sie das Kennwort ein:" , "", "*", 300, 100 )
    $Alias_3 = InputBox ( "Benutzereinrichtung Outlook", "Bitte geben Sie die Alias der E-Mail-Adresse (Vorname.Nachname) ein:" , "", "", 300, 125 )
    sleep(1000)

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[1]), $GUI_CHECKED) then
    RunWait("\\vwserver\netlogon\bk.bat")
    For $i = 1 To $checked
    GUICtrlSetData($progress, Floor($i*(100/$checked)))
    Next

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

    sleep(5000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[2]), $GUI_CHECKED) then
    RunWait("\\vwserver\apps\ElsaWin\client\SETUP.EXE -s")

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[3]), $GUI_CHECKED) then ;Elsa-Anpassungen vornehmen
    RunWait(@ComSpec & " /c " & 'sc config sharedaccess start= auto', "", @SW_HIDE);sc config sharedaccess start= auto
    RunWait(@ComSpec & " /c " & 'sc start sharedaccess', "", @SW_HIDE) ;sc start sharedaccess

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

    runwait("c:\Programme\elsawin\bin\enable_elsa_xpsp2_DEU.bat")

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

    RunWait(@ComSpec & " /c " & 'sc stop sharedaccess', "", @SW_HIDE);sc stop sharedaccess
    RunWait(@ComSpec & " /c " & 'sc config sharedaccess start= disabled', "", @SW_HIDE);sc config sharedaccess start= disabled
    For $i = 1 To $checked
    GUICtrlSetData($progress, Floor($i*(100/$checked)))
    Next

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[4]), $GUI_CHECKED) then
    RunWait("C:\Programme\elsawin\bin\SVGView.exe")

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[5]), $GUI_CHECKED) then ; Benutzer lokal als Administrator einrichten (Verwendet Variablen von weiter oben!)
    If @OSVersion = "WIN_7" then
    RunWait(@ComSpec & " /c " & 'RunDll32.exe shell32.dll,Control_RunDLL nusrmgr.cpl', "", @SW_HIDE) ;Benutzerkontenverwaltung öffnen Windows 7
    WinWaitActive( "Benutzerkonten")
    send("{tab}")
    sleep(200)
    send("{tab}")
    sleep(200)
    send("{space}")
    WinWaitActive( "Benutzerkonten" , "Verwenden Sie die unten stehende Liste" )
    Send("{ALTDOWN}H{ALTUP}")
    send($Benutzer_1)
    sleep(200)
    send("{tab}")
    sleep(200)
    send($Domaene)
    sleep(200)
    send("{enter}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{enter}")
    sleep(200)
    send("{enter}")
    sleep(500)
    Send("{ALTDOWN}{F4}{ALTUP}")
    sleep(1000)

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

    EndIf

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

    If @OSVersion = "WIN_XP" then
    RunWait(@ComSpec & " /c " & 'nusrmgr.cpl', "", @SW_HIDE) ;Benutzerkontenverwaltung öffnen Windows XP
    winwaitactive("Benutzerkonten")
    ControlClick( "Benutzerkonten", "Benutzer dieses Computers", "Button2" )
    sleep(200)
    send($Benutzer_1)
    sleep(200)
    send("{tab}")
    sleep(200)
    send($Domaene)
    sleep(200)
    send("{enter}")
    sleep(200)
    send("{down 2}")
    sleep(200)
    send("{tab}{up 9}")
    sleep(200)
    send("{enter}")
    sleep(200)
    ControlClick( "Benutzerkonten", "Benutzer dieses Computers", "Button7" )
    sleep(1000)

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

    EndIf

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[6]), $GUI_CHECKED) then ;Bildschirmhintergrund rot
    If @OSVersion = "WIN_7" then
    ShellExecute(@WindowsDir &'\Resources\Ease of Access Themes\classic.theme') ;2000er-Style Windows 7 öffnen
    sleep(1000)
    WinWait("Anpassung")
    send("{tab}")
    sleep(200)
    send("{space}")
    WinWait("Desktophintergrund")
    send("{tab}")
    sleep(200)
    send("{space}")
    WinWait("Farbe")
    send("{down}")
    sleep(200)
    send("{space}")
    sleep(200)
    send("{enter}")
    sleep(200)
    Send("{tab}")
    sleep(200)
    send("{space}")
    WinWait("Anpassung")
    Send("{ALTDOWN}{F4}{ALTUP}")
    sleep(1000)

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

    EndIf

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

    If @OSVersion = "WIN_XP" then
    ShellExecute(@WindowsDir &'\Resources\Themes\Windows Classic.theme') ;2000er-Style Windows XP öffnen
    sleep(200)
    send("{tab 5}")
    sleep(200)
    send("{RIGHT}")
    sleep(200)
    WinWait("Eigenschaften von Anzeige","List Of backgrounds")
    WinWait("Eigenschaften von Anzeige","List Of backgrounds")
    sleep(200)
    ControlClick("Eigenschaften von Anzeige","List Of backgrounds","Button2")
    sleep(200)
    send("{TAB}")
    sleep(200)
    send("{space}")
    sleep(200)
    send("{DOWN}")
    sleep(200)
    send("{space}")
    sleep(200)
    send("{ENTER}")
    sleep(200)
    ControlClick("Eigenschaften von Anzeige","List Of backgrounds","Button6")
    sleep(200)
    ControlClick("Eigenschaften von Anzeige","List Of backgrounds","Button4")
    sleep(1000)

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

    EndIf

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

    EndIf

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

    if BitAND (GUICtrlRead($checkbox[7]), $GUI_CHECKED) then
    RunWait("\\10.57.196.130\groups\Admin\Software\Kaspersky\setup_WKS_MP4.exe /s")

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[8]), $GUI_CHECKED) then ;Bildschirmhintergrund Klassisch
    If @OSVersion = "WIN_7" then
    ShellExecute(@WindowsDir &'\Resources\Ease of Access Themes\classic.theme') ;2000er-Style Windows 7 öffnen
    sleep(1000)
    Send("{ALTDOWN}{F4}{ALTUP}")
    sleep(1000)

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

    EndIf

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

    If @OSVersion = "WIN_XP" then
    ShellExecute(@WindowsDir &'\Resources\Themes\Windows Classic.theme') ;2000er-Style
    WinWait('Eigenschaften von Anzeige')
    ControlClick('Eigenschaften von Anzeige', '', 'Button3')
    sleep(1000)

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

    EndIf

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[9]), $GUI_CHECKED) then
    RunWait("c:\Programme\Bginfo\Bginfo.exe /timer:0 /NOLICPROMPT c:\Programme\Bginfo\sysdata2.bgi")
    For $i = 1 To $checked
    GUICtrlSetData($progress, Floor($i*(100/$checked)))
    Next

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[11]), $GUI_CHECKED) then ; Java-Update deaktivieren Java-Version 6.0.1 bis 6.0.27 + 6.0.29

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

    $java = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment", "Java6FamilyVersion") ; Prüfung der Java-Version
    MsgBox(64, "Java-Version", "Java-Version ist:" & $java, 5)
    if $java = "" Then Return 0 & MsgBox(16, "Java-Version", "Keine gültige Java-Version! (Betriebssystem 64-Bit?)", 5)

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

    if $java = "1.6.0_29" Then
    Runwait(@ProgramFilesDir & "\Java\jre6\bin\javacpl.exe")
    winwaitactive( "Java Control Panel" )
    send("{right}")
    sleep(200)
    send("{right}")
    sleep(200)
    send("{right}")
    sleep(200)
    send("{tab}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{right}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{down}")
    sleep(200)
    send("{space}")
    sleep(200)
    send("{enter}")
    sleep(1000)

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

    Else
    If $java = "1.6.0_1" OR "1.6.0_2" OR "1.6.0_3" OR "1.6.0_4" OR "1.6.0_5" OR "1.6.0_6" OR "1.6.0_7" OR "1.6.0_8" OR "1.6.0_9" _
    OR "1.6.0_10" OR "1.6.0_11" OR "1.6.0_12" OR "1.6.0_13" OR "1.6.0_14" OR "1.6.0_15" OR "1.6.0_16" OR "1.6.0_17" OR "1.6.0_18" _
    OR "1.6.0_19" OR "1.6.0_20" OR "1.6.0_21" OR "1.6.0_22" OR "1.6.0_23" OR "1.6.0_24" OR "1.6.0_25" OR "1.6.0_26" OR "1.6.0_27" Then
    Runwait(@ProgramFilesDir & "\Java\jre6\bin\javacpl.exe")
    winwaitactive( "Java Control Panel" )
    sleep(200)
    send("{right}")
    sleep(200)
    send("{tab 2}")
    sleep(200)
    send("{space}")
    sleep(200)
    send("{tab}")
    sleep(200)
    send("{enter}")
    sleep(200)
    send("{enter}")

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

    sleep(1000)

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

    EndIf
    EndIf

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[12]), $GUI_CHECKED) then ;Firefox-Profilinstallation
    run(@ProgramFilesDir & "\Mozilla Firefox\firefox.exe")
    sleep(2000)
    $sProzess = "firefox.exe"
    RunWait(@ComSpec & " /c " & "taskkill /F /IM "&$sProzess,"",@SW_HIDE)
    sleep(2000)
    $sProzess = "firefox.exe"
    RunWait(@ComSpec & " /c " & "taskkill /F /IM "&$sProzess,"",@SW_HIDE)
    sleep(5000)
    RunWait("\\vwserver\netlogon\firefox_install.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWaitActive("Nachrichtendienst")
    send("{enter}")
    sleep(1000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[13]), $GUI_CHECKED) then ;Firefox Popup-Blocker für 10.58.60.72 deaktivieren
    run(@ProgramFilesDir & "\Mozilla Firefox\firefox.exe")
    sleep(2000)
    $sProzess = "firefox.exe"
    RunWait(@ComSpec & " /c " & "taskkill /F /IM "&$sProzess,"",@SW_HIDE)
    sleep(2000)
    run(@ProgramFilesDir & "\Mozilla Firefox\firefox.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 2))
    WinWaitActive("Mozilla")
    Send("{ALTDOWN}x{ALTUP}ee{enter}")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWaitActive("Einstellungen")
    send("{right}{right}")
    sleep(200)
    send("{ALTDOWN}a{ALTUP}")
    WinWaitActive("Berechtigte Websites - Pop-ups")
    send("10.58.60.72{enter}")
    Send("{ALTDOWN}c{ALTUP}")
    send("{tab}{enter}")
    AutoItSetOption (Opt("WinTitleMatchMode", 2))
    WinWaitActive("Mozilla")
    Send("{ALTDOWN}d{ALTUP}b")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    sleep(1000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[14]), $GUI_CHECKED) then ; iproxy prüfen und SSl 2.0 im IE aktivieren
    run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWait( "Volkswagen AG Internationales Händlerportal - Windows Internet Explorer" )
    Send("{ALTDOWN}d{ALTUP}f")
    sleep(200)
    send("www.ebay.de{enter}")
    sleep(5000)
    if WinGetHandle( "Verbindung herstellen mit 10.112.254.71" ) Then
    send("DE470070.000")
    send("{tab}")
    send("avp-net")
    send("{tab}")
    send("{space}")
    send("{enter}")
    else
    Send("{ALTDOWN}x{ALTUP}o")
    WinWait( "Internetoptionen" )
    send("+{tab}")
    send("{up}")
    ControlClick('Internetoptionen', 'Klicken Sie auf "Einrichten", um eine', 'Button10')
    Send("{ALTDOWN}s{ALTUP}")
    sleep(200)
    Send("{ALTDOWN}a{ALTUP}")
    send("http://iproxy:8080/")
    sleep(200)
    send("{tab 2}{enter}")
    Winwait( "Internetoptionen" )
    ControlClick('Internetoptionen', 'Klicken Sie auf "Einrichten", um eine', 'Button11')
    sleep(500)
    Send("{ALTDOWN}d{ALTUP}f")
    sleep(200)
    send("www.ebay.de{enter}")
    sleep(5000)
    if WinGetHandle( "Verbindung herstellen mit 10.112.254.71" ) Then
    send("DE470070.000")
    send("{tab}")
    send("avp-net")
    send("{tab}")
    send("{space}")
    send("{enter}")
    sleep(2000)
    EndIf
    EndIf
    Send("{ALTDOWN}x{ALTUP}")
    sleep(200)
    send("o")
    WinWait( "Internetoptionen" )
    send("+{tab}")
    send("{up}")
    send("{right 2}")
    send("{tab}")
    send("{down 100}")
    send("{up 10}")
    sleep(1000)
    send("{space}")
    send("{enter}")
    sleep(500)
    Send("{ALTDOWN}D{ALTUP}")
    sleep(200)
    send("e")
    sleep(200)
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    if WinGetHandle( "Internet Explorer") Then
    send("{enter}")
    EndIf
    sleep(1000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[10]), $GUI_CHECKED) then ; SSl 2.0 im IE aktivieren
    run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWait( "Volkswagen AG Internationales Händlerportal - Windows Internet Explorer" )
    Send("{ALTDOWN}x{ALTUP}")
    sleep(200)
    send("o")
    WinWait( "Internetoptionen" )
    send("+{tab}")
    send("{up}")
    send("{right 2}")
    send("{tab}")
    send("{down 100}")
    send("{up 10}")
    sleep(1000)
    send("{space}")
    send("{enter}")
    WinWait( "Volkswagen AG Internationales Händlerportal - Windows Internet Explorer" )
    Send("{ALTDOWN}D{ALTUP}")
    sleep(200)
    send("e")
    sleep(200)
    if WinGetHandle( "Internet Explorer") Then
    send("{enter}")
    EndIf
    sleep(1000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[15]), $GUI_CHECKED) then
    RunWait("\\10.57.196.130\groups\Admin\Software\flashplayer_10_0_45_2_ie.exe /s")

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[16]), $GUI_CHECKED) then ; Excel Eurowährungstool deaktivieren
    AutoItSetOption (Opt("WinTitleMatchMode", 2))
    Run(@ProgramFilesDir & "\Microsoft Office\OFFICE11\excel.exe")
    sleep(15000) ; 15 Sekunden warten dann prüfen ob Fenster "Benutzername" aktiv ist.
    if WinGetHandle( "Benutzername" ) Then
    send("{tab}{DEL}{enter}")
    EndIf
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWait( "Microsoft Excel - Mappe1" )
    Send("{ALTDOWN}x{ALTUP}i")
    WinWait( "Add-Ins" )
    send("{space}")
    send("{tab}")
    send("{enter}")
    WinWait( "Microsoft Excel - Mappe1" )
    Send("{ALTDOWN}d{ALTUP}b")
    sleep(1000)

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[17]), $GUI_CHECKED) then ; Citrix-Einrichtung
    run(@ProgramFilesDir & "\Citrix\ICA Client\pn.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 2))
    WinWaitActive( "Citrix" )
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    if WinGetHandle( "AVP Deggendorf") Then
    sleep(500)
    send($Benutzer_2)
    send("{tab}")
    sleep(500)
    send($Kennwort_2)
    send("{tab}DE47007X")
    sleep(500)
    send("{tab}{Space}")
    sleep(500)
    send("{enter}")
    sleep(500)
    WinWaitActive( "Citrix Program Neighborhood - AVP Deggendorf" )
    send("{ALTDOWN}d{ALTUP}s")
    Else
    send("{ALTDOWN}a{ALTUP}b")
    sleep(500)
    send("{enter}")
    sleep(500)
    send("{down}{enter}")
    sleep(500)
    Send("AVP Deggendorf")
    sleep(500)
    send("{tab}")
    sleep(500)
    Send("AVP Deggendorf")
    sleep(500)
    send("{enter}")
    sleep(500)
    send("{ALTDOWN}w{ALTUP}")
    sleep(500)
    send("{enter}")
    sleep(500)
    send("{enter}")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    sleep(5000)
    WinWaitActive( "AVP Deggendorf FEHLER" )
    send("{enter}")
    sleep(500)
    WinWaitActive( "Citrix Program Neighborhood - AVP Deggendorf" )
    send("{ALTDOWN}d{ALTUP}n")
    sleep(500)
    WinWaitActive( "AVP Deggendorf" )
    send("{enter}")
    sleep(500)
    send("{ALTDOWN}a{ALTUP}a")
    sleep(700)
    WinWaitActive( "AVP Deggendorf" )
    send($Benutzer_2)
    sleep(700)
    send("{tab}")
    sleep(700)
    send($Kennwort_2)
    sleep(700)
    send("{tab}")
    sleep(700)
    send("DE47007X")
    sleep(700)
    send("{tab}{Space}")
    sleep(500)
    send("{enter}")
    sleep(500)
    WinWaitActive( "Citrix Program Neighborhood - AVP Deggendorf" )
    send("{ALTDOWN}d{ALTUP}s")
    sleep(1000)
    if WinGetHandle( "Benutzername" ) Then
    send("{tab}{DEL}{enter}")
    EndIf
    sleep(1000)
    EndIf

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[18]), $GUI_CHECKED) then
    RunWait("\\10.57.196.130\groups\Admin\Software\Autohotkey\opticlient_fehler.exe")

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[19]), $GUI_CHECKED) then ; Druckwarteschlange neu starten
    RunWait(@ComSpec & " /c " & 'net stop TCP/IP-Druckserver', "", @SW_HIDE);net stop TCP/IP-Druckserver
    RunWait(@ComSpec & " /c " & 'net stop Druckwarteschlange', "", @SW_HIDE);net stop Druckwarteschlange
    RunWait(@ComSpec & " /c " & 'net start TCP/IP-Druckserver', "", @SW_HIDE);net start TCP/IP-Druckserver
    RunWait(@ComSpec & " /c " & 'net start Druckwarteschlange', "", @SW_HIDE);net start Druckwarteschlange

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

    EndIf

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

    If bitand (GUICtrlRead($checkbox[20]), $GUI_CHECKED) then
    RunWait("\\10.57.196.250\SAPGui\SAPGui_710_AVP_Standard.bat")

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[21]), $GUI_CHECKED) then
    FileCopy ( "\\10.57.196.250\SAPGui\saplogon.ini", "C:\Windows\" , 1);SAP Logon kopieren

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[22]), $GUI_CHECKED) then ; Hardcopy Registrierung
    $sProzess = "hardcopy.exe"
    RunWait(@ComSpec & " /c " & "taskkill /F /IM "&$sProzess,"",@SW_HIDE)
    sleep(2000)
    run(@ProgramFilesDir & "\Hardcopy\hardcopy.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWaitActive( "Hardcopy Registrierung" )
    send("2011")
    sleep(200)
    send("{tab}")
    sleep(200)
    send("12131415")
    sleep(200)
    send("{enter}")
    sleep(200)
    send("{enter}")
    sleep(1000)

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

    EndIf

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

    If BitAND (GUICtrlRead($checkbox[23]), $GUI_CHECKED) then
    run(@ProgramFilesDir & "\Microsoft Office\OFFICE11\outlook.exe")
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    WinWaitActive( "Outlook 2003-Start" )
    send("{enter}")
    sleep(200)
    send("{ALTDOWN}j{ALTUP}")
    sleep(200)
    send("{ALTDOWN}w{ALTUP}")
    sleep(200)
    WinWaitActive( "E-Mail-Konten" )
    send("{ALTDOWN}m{ALTUP}")
    sleep(200)
    send("{ALTDOWN}w{ALTUP}")
    sleep(200)
    ;WinWaitActive( "E-Mail-Konten" , "Exchange Server-Einstellungen" )
    send("10.58.60.124")
    sleep(200)
    send("{tab}")
    sleep(200)
    send("{space}")
    sleep(200)
    send("{tab}")
    sleep(200)
    send($Alias_3)
    sleep(200)
    send("{ALTDOWN}w{ALTUP}")
    sleep(500)
    ;WinWaitActive( "E-Mail-Konten" , "Kontoeinrichtung abgeschlossen!" )
    send("{enter}")
    sleep(200)
    AutoItSetOption (Opt("WinTitleMatchMode", 2))
    WinWaitActive( "Verbindung" )
    AutoItSetOption (Opt("WinTitleMatchMode", 1))
    send("DE470070\")
    sleep(200)
    send($Benutzer_3)
    sleep(200)
    send("{tab}")
    sleep(200)
    send($Kennwort_3)
    sleep(200)
    send("{enter}")
    sleep(1000)

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

    EndIf

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

    For $i = 1 To $checked
    GUICtrlSetData($progress, Floor($i*(100/$checked)))
    Next

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

    $reset = MsgBox(4, "Zurücksetzen der Auswahl", "Soll die Auswahl zurückgesetzt werden?") ; Möglichkeit die Auswahl zurück zu setzen nach den Installationen
    if $reset = 6 then ; wenn JA dann
    For $i = 1 To 23
    If BitAnd(GUICtrlRead($checkbox[$i]), $GUI_CHECKED) Then GUICtrlSetState($checkbox[$i], $GUI_UNCHECKED)

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

    Next
    GUICtrlSetData($progress, 0)
    EndIf
    EndFunc

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

    Func resetbutton() ; prüft ob die checkboxen ausgewählt sind und setzt die ausgewählten zurück.

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

    For $i = 1 To 23

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

    If BitAnd(GUICtrlRead($checkbox[$i]), $GUI_CHECKED) Then GUICtrlSetState($checkbox[$i], $GUI_UNCHECKED)

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

    Next
    GUICtrlSetData($progress, 0)
    EndFunc

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

    Func endebutton() ; beendet das Installationsmenü

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

    Exit

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

    EndFunc

    [/autoit]

    Nun soll wie hier im Thread anfangs auch gewollt unten in der Gui eine Progressbar laufen die je nachdem wieviele Checkboxen ausgewählt wurden entsprechend die Progressbar füllt.

    Sprich bei 3 Boxen soll nach der 1. Installation 33%, nach der 2. Installation 66% und nach der 3. Installation 100% angezeigt werden....
    bei 4 ausgewählten boxen nach der 1. Installation 25%, 2. Installation 50% usw.

    jede installation läuft nach dem Prinzip

    If BitAND (GUICtrlRead($checkbox[1]), $GUI_CHECKED) then

    führe die gewünschte 1. Installation etc. durch

    Endif


    If BitAND (GUICtrlRead($checkbox[2]), $GUI_CHECKED) then

    führe die gewünschte 2. Installation etc. durch

    Endif


    mir ist nun nicht klar wo genau ich welche schnipsel positionieren muss damit das wie gewünscht klappt....ich teste das bei mir (ist auch im hier geposteten script so) hier momentan mit den Checkboxen 1, 3 und 9 weil diese keinen "Schaden" auf meinem laufen system anrichten können...

    wenn ich nun diese 3 Boxen auswähle und die funktion starte dann zeigt er mir in der checkbox auch noch brav das 3 Boxen ausgewählt wurden sobald die 1. installation allerdings fertig gelaufen ist zeigt er mir den fortschrittsbalken aber zu 100% voll an, kann mir jemand sagen wo da der Fehler liegt??

    3 Mal editiert, zuletzt von cupra-turbo (30. November 2011 um 15:46)

  • WoW, ein großes Script, es währe sehr hilfreich wenn du dir angewöhnen würdest deine Zeilen richtig einzurücken .. nur zur übersicht.. des weiteren würde ich für die unterschiedlichen Installationen eine jeweils eigne Funktion machen nur zur Übersicht denn man blickt ja kaum druch in diesem Skript .. und es ist auch schwierig Verberbesserungen vorzunehmen usw.. wäre es nicht so lang würde ich ja mal eine Generalüberholung davon machen aber das würde sehr lange dauern xD

    nun zum Problem , bei deiner Darstellung und dem Aufbau deines Scriptes ist es schwer sowas 'einfach' einzubauen.. solltest du dein Script nicht noch mal Generalüberholen sondern so belassen würde ich nach jeder Installation eine Funktion aufrufen die dir einfach die Progressbar um einen Wert X weiter setzt, wobei X sich aus den zuvor ausgelesenen Boxxen generiert.

    Gruß Marvin