Auswahlfenster ertellen mittels AutoIT 3

  • Hallo, (schon wieder :rofl: )

    ich hab folgende idee nachts beim schlafen bekommen:

    Ist es möglich mit AutoIT zu scripten das es eine art Auswahlfenster kommt worin sagen wir mal 10 Programme aufgelistet sind wo ich da ein Häckchen rein mache und auf OK klicke und das die jeweiligen Programme die einen Häckchen haben nacheinander Installiert werden?
    Ist das möglich?

  • ja
    guicreate
    guictrlcreatecheckbox
    guictrlcreatebutton
    beim buttonklick die checkboxen abfragen und die installationsroutinen starten (am besten silent)
    die installationsroutinen müssen natürlich auf das jeweilige programm angepasst werden

    mfg fire

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Also ich hab da ein bischen rumprobiert hab aber nichts gescheites hin bekommen. ;(

    könnte vielleicht einer ein beispiel scripten? ^^
    glaub das wird aber bischen heftiger was ich davor gelernt habe.

  • Hallo,
    kleines Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('GUIOnEventMode', 1) ;eventmodus einschalten

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

    guicreate("Programm-Installation") ;gui basteln
    guictrlcreatelabel("Bitte Programme auswählen, dann Installieren!",10,10,300,30)
    dim $check[10] ;Array für 10 checkboxen
    for $i=0 to 9 ;die checkboxen-id dem array zuweisen
    $check[$i]=GUICtrlCreateCheckbox("Programm"&$i,10,30+30*$i,150,20)
    Next
    $installbutton=guictrlcreatebutton("Installieren",200,40,80,30) ;button
    $endebutton=guictrlcreatebutton("Ende",200,90,80,30) ;button
    GUICtrlSetOnEvent($installbutton, "_install") ;wenn event "button "Installieren" gedrückt" , die funktion _install auslösen
    GUICtrlSetOnEvent($endebutton, "_ende") ; wenn event endebutton gedrückt, dan funktion _ende auslösen
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ende")
    guisetstate() ; gui aktivieren

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

    while 1 ; endlosschleife, wir warten auf die events
    sleep(100)
    wend

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

    func _install() ;programme installieren
    for $i=0 to 9
    if guictrlread($check[$i])=$GUI_CHECKED then msgbox(0,"Installation:","Programm"&$i)
    Next
    endfunc

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

    func _ende() ;ende
    Exit
    endfunc

    [/autoit]


    ciao
    Andy

    • Offizieller Beitrag

    Andy, schönes Beispiel, aber da fehlt noch die Möglichkeit die Programmnamen anzugeben und das aufrufen der eigentlichen Installations-Scripte.
    Habe das Beispiel mal entsprechend erweitert:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt('GUIOnEventMode', 1) ;eventmodus einschalten

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

    GUICreate("Programm-Installation") ;gui basteln
    GUICtrlCreateLabel("Bitte Programme auswählen, dann Installieren!", 10, 10, 300, 30)
    Dim $check[10] ;Array für 10 checkboxen
    Dim $aProgNames[10] = ['AutoIt3', 'SciTE', 'Firefox', 'Thunderbird', 'Adobe Reader', 'IrfanView', 'PopTray', 'AntiVir', 'TrueCrypt', 'Miranda'] ;hier die Namen der Programme eintragen
    For $i = 0 To 9 ;die checkboxen-id dem array zuweisen
    $check[$i] = GUICtrlCreateCheckbox($aProgNames[$i], 10, 30 + 30 * $i, 150, 20)
    Next
    $installbutton = GUICtrlCreateButton("Installieren", 200, 40, 80, 30) ;button
    $endebutton = GUICtrlCreateButton("Ende", 200, 90, 80, 30) ;button
    GUICtrlSetOnEvent($installbutton, "_install") ;wenn event "button "Installieren" gedrückt" , die funktion _install auslösen
    GUICtrlSetOnEvent($endebutton, "_ende") ; wenn event endebutton gedrückt, dan funktion _ende auslösen
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ende")
    GUISetState() ; gui aktivieren

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

    While 1 ; endlosschleife, wir warten auf die events
    Sleep(100)
    WEnd

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

    Func _install() ;programme installieren
    For $i = 0 To 9
    If GUICtrlRead($check[$i]) = $GUI_CHECKED Then Call('_Progr' & $i)
    Next
    EndFunc ;==>_install

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

    Func _ende() ;ende
    Exit
    EndFunc ;==>_ende

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

    Func _Progr0()
    MsgBox(0, "Installation:", $aProgNames[0]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr1()
    MsgBox(0, "Installation:", $aProgNames[1]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr2()
    MsgBox(0, "Installation:", $aProgNames[2]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr3()
    MsgBox(0, "Installation:", $aProgNames[3]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr4()
    MsgBox(0, "Installation:", $aProgNames[4]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr5()
    MsgBox(0, "Installation:", $aProgNames[5]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr6()
    MsgBox(0, "Installation:", $aProgNames[6]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr7()
    MsgBox(0, "Installation:", $aProgNames[7]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr8()
    MsgBox(0, "Installation:", $aProgNames[8]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

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

    Func _Progr9()
    MsgBox(0, "Installation:", $aProgNames[9]) ;statt der MsgBox steht hier dann das Installations-Script
    EndFunc

    [/autoit]
  • Hallo Oscar,
    genau deine "erweiterte" Fleißarbeit wollte ich eigentlich dem Threadersteller aufs Auge drücken^^
    Nur selbst fressen macht fett ;)
    ciao
    Andy

  • Ey ich muss mich hier echt sehr Bedanke das ihr sogar ZU VIEL arbeit für neebies macht! RESPEKT :rock:
    Und Vielen Dank an euch drei!!!! :thumbup: :thumbup: :thumbup: