Checkbox ausführen

  • hallo zusammen :)

    Ich habe mir das AutoIt-Tutorial schon durchgelesen und mich selber daran probiert, durch eine Checkbox ein anderes script laufen zu lassen, wenn ich die Checkbox checke und ausführen drücke soll das script die ausgewählten programme ausführen. Leider wird mir aus dem Tutorial nicht klar, wie genau ich das schreiben soll... Wäre sehr nett wenn ihr mir ein paar Ansätze vorschlagt und ich dann selber noch ein bisschen rumprobieren kann.

    Über eure hilfe wäre ich sehr dankbar :)

    MfG Skybor

  • Dann zeigt doch mal was bis jetzt geschrieben hast.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ich habe bis jetz das Fenster mit den Programmen die zur Auswahl stehen gemacht aber, wie gesagt, weiter komme Ich nicht und aus dem Tutorial wird mir nicht klar, wie ich weitermachen muss damit die Scripte von den ausgewählten Programmen ausgeführt werden.. (Die Installationsscripte sind auch schon fertig btw)

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\\Desktop\koda\Forms\Form2.kxf
    $Form2 = GUICreate("Form2", 320, 253, 189, 123)
    $Checkbox1 = GUICtrlCreateCheckbox("PDFCreator", 70, 61, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Foxit Reader", 70, 77, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Firefox", 70, 93, 97, 17)
    $Checkbox4 = GUICtrlCreateCheckbox("iTunes", 70, 109, 97, 17)
    $Checkbox5 = GUICtrlCreateCheckbox("Flash", 70, 125, 97, 17)
    $Checkbox6 = GUICtrlCreateCheckbox("Shockwave", 174, 61, 97, 17)
    $Checkbox7 = GUICtrlCreateCheckbox("Java", 174, 77, 97, 17)
    $Checkbox8 = GUICtrlCreateCheckbox("XenAppHosted", 174, 93, 97, 17)
    $Checkbox9 = GUICtrlCreateCheckbox("7Zip", 174, 109, 97, 17)
    $Button1 = GUICtrlCreateButton("Ausführen", 72, 152, 75, 25)
    $Button2 = GUICtrlCreateButton("Abbrechen", 168, 152, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit]

    Ich suche ja auh keine Lösungen die Ich mir einfach kopieren kann sondern Lösungsansätze, durch die Ich das Script fertigmachen kann.

    Einmal editiert, zuletzt von skybor1994 (31. Oktober 2011 um 13:27)


  • Wenn du bei einer Checkbox GUICtrlRead machst, kommt 1 für markiert und 0 für unmarkiert raus.


    Und wie kann Ich schreiben, dass mein Script die gecheckten Programme ausführt?


    Nochmal eine Frage: kann ich damit irgendwas anfangen? :/

    [autoit]

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

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

    Case $Checkbox1
    if ControlCommand("form1", "", "Checkbox1", "IsChecked", "") = 1 then
    _Func1 ()
    Else
    _Func2 ()
    endif

    [/autoit]
  • Jein, ist nicht ganz falsch, aber machs lieber so:

    [autoit]

    Do
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE Or $Button2
    ExitLoop
    Case $Button1 ; der Button, den du eingebaut hast
    If GUICtrlRead($Checkbox1) = 1 Then ; Checkbox ist markiert
    _Func1()
    EndIf
    ;...
    ; mit den anderen Checkboxen das selbe
    EndSwitch
    Until False

    [/autoit]


    Oder so (mir gefällts ohne Switch fast besser):

    [autoit]

    Do
    $Msg = GUIGetMsg()
    If $Msg = $Button1 Then; der Button, den du eingebaut hast
    If GUICtrlRead($Checkbox1) = 1 Then ; Checkbox ist markiert
    _Func1()
    EndIf
    ;...
    ; mit den anderen Checkboxen das selbe
    EndIf
    Until $Msg = $GUI_EVENT_CLOSE Or $Msg = $Button2

    [/autoit]
  • Jetz bekomme ich eine Fehlermeldung wenn Ich das Script erstmal nur mit PDFCreator probiere..

    [autoit]

    Do
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Button1 ; der Button, den du eingebaut hast
    If GUICtrlRead($Checkbox1) = 1 Then ; Checkbox ist markiert
    _Func1(run PDFCreator.au3)
    EndIf

    EndSwitch
    Until False

    [/autoit]

    Die Fehlermeldung sagt : Error: Unknown unction name


    Woran liegt das? (Nicht zu hart mit mir sein, ist mein erster Versuch^^)

  • [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\\Desktop\koda\Forms\Form2.kxf
    $Form2 = GUICreate("Form2", 320, 253, 189, 123)
    $Checkbox1 = GUICtrlCreateCheckbox("PDFCreator", 70, 61, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Foxit Reader", 70, 77, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Firefox", 70, 93, 97, 17)
    $Checkbox4 = GUICtrlCreateCheckbox("iTunes", 70, 109, 97, 17)
    $Checkbox5 = GUICtrlCreateCheckbox("Flash", 70, 125, 97, 17)
    $Checkbox6 = GUICtrlCreateCheckbox("Shockwave", 174, 61, 97, 17)
    $Checkbox7 = GUICtrlCreateCheckbox("Java", 174, 77, 97, 17)
    $Checkbox8 = GUICtrlCreateCheckbox("XenAppHosted", 174, 93, 97, 17)
    $Checkbox9 = GUICtrlCreateCheckbox("7Zip", 174, 109, 97, 17)
    $Button1 = GUICtrlCreateButton("Ausführen", 72, 152, 75, 25)
    $Button2 = GUICtrlCreateButton("Abbrechen", 168, 152, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Do
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Button1
    If GUICtrlRead($Checkbox1) = 1 Then
    _Func1(Run("PDFCreator.exe")

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

    EndIf

    EndSwitch
    Until False

    [/autoit]

    Was ist an dem Script falsch?:/ egal wie ich dran rumdreh kommt immer die gleiche Fehlermeldung..

  • Erstens müssen alle Klammern immer ausbalnciert sein.. Du hast zwei mal (( aber nur ein mal ) in einer Zeile stehen. Zweitens verwendest du mit _Func1 eine Funktion die noch nicht mal existiert. Und jetzt wunderst du dich warum da eine Fehlermeldung kommt? Außerdem würdest du uns die Problemlösung wesentlich erleichtern, wenn du mal die Fehlermeldungen posten würdest. Vollständig.

  • w/e jetz läufts anscheinend hat der die auszuführende Datei nicht gefunden..
    Jetz hab ich eine neue Frage:

    [autoit]

    Do
    $Msg = GUIGetMsg()
    If $Msg = $Button1 Then; der Button, den du eingebaut hast
    If GUICtrlRead($Checkbox1) = 1 Then ; Checkbox ist markiert
    Run("PDFCreator.exe")

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

    EndIf

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

    EndIf
    Until $Msg = $GUI_EVENT_CLOSE Or $Msg = $Button2

    [/autoit]

    Wie/Wo muss ich die anderen Checkboxen abfragen? :pinch:

    • Offizieller Beitrag

    Wie/Wo muss ich die anderen Checkboxen abfragen?

    z.B. so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate('Test')
    $cb1 = GUICtrlCreateCheckbox('CB 1', 10, 10, 40)
    $cb2 = GUICtrlCreateCheckbox('CB 2', 10, 30, 40)
    $cb3 = GUICtrlCreateCheckbox('CB 3', 10, 50, 40)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $cb1
    If BitAND(GUICtrlRead($cb1), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox 1 checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox 1 unchecked')
    EndIf
    Case $cb2
    If BitAND(GUICtrlRead($cb2), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox 2 checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox 2 unchecked')
    EndIf
    Case $cb3
    If BitAND(GUICtrlRead($cb3), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox 3 checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox 3 unchecked')
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    Wobei es bei mehrfach auftretenden Aktionen sinnvoll ist, diese in eine Funktion auszulagern:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate('Test')
    $cb1 = GUICtrlCreateCheckbox('CB 1', 10, 10, 40)
    $cb2 = GUICtrlCreateCheckbox('CB 2', 10, 30, 40)
    $cb3 = GUICtrlCreateCheckbox('CB 3', 10, 50, 40)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $cb1
    _CheckCB($cb1)
    Case $cb2
    _CheckCB($cb2)
    Case $cb3
    _CheckCB($cb3)
    EndSwitch
    WEnd

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

    Func _CheckCB($iID)
    If BitAND(GUICtrlRead($iID), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox ' & ControlGetText($gui, '', $iID) & ' checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox ' & ControlGetText($gui, '', $iID) & ' unchecked')
    EndIf
    EndFunc

    [/autoit]
  • naja.. nachdem ich heute noch den ganzen tag dran rumgespielt hab, hab ichs hinbekommen:)

    danke für die hilfe