Script verbessern

  • Hallo zusammen,

    ich habe mal wieder eine Frage an die Profis bzw. möchte versuchen mein Script zu verbessern.

    Kurz gesagt glaube ich das mein Script, das so wie es ist funktioniert, sicher noch`Verbesserungsportential besitzt.
    Soll heissen die ganzen 'Einzel'aufrufe kann man sicherlich über Arrays (glaube ich zumindest) verbessern, professioneller machen.
    Daher meine Frage / Bitte um Verbesserungsvorschläge (ich will ja auch besser werden)

    Bei dem Script handelt es sich um eine Art Softwareupdater, der auf vorhandene batch Dateien zugrefit
    (das dem so ist hat historische Gründe und soll auch so bleiben (Nutzerwunsch)


    Spoiler anzeigen


    #include <GUIConstants.au3>
    #include <Date.au3>

    Dim $lbswupd1, $lbswupd2, $lbswupd3, $lbswupd4, $lbswupd5, $lbswupd6, $lbswupd7 ;Label

    Dim $swupddate1, $swupddate2, $swupddate3, $swupddate4, $swupddate5, $swupddate6, $swupddate7 ;Date

    Dim $swupdbatch1, $swupdbatch2, $swupdbatch3, $swupdbatch4, $swupdbatch5, $swupdbatch6, $swupdbatch7 ;BatchPath
    Dim $swupd1, $swupd2, $swupd3, $swupd4, $swupd5, $swupd6, $swupd7 ;Batchfile
    Dim $batchAll1, $batchAll2, $batchAll3, $batchAll4, $batchAll5, $batchAll6, $batchAll7 ;BatchGesamt

    Dim $swupdpath1, $swupdpath2, $swupdpath3, $swupdpath4, $swupdpath5, $swupdpath6, $swupdpath7 ;UpdatePath
    Dim $swupdfile1, $swupdfile2, $swupdfile3, $swupdfile4, $swupdfile5, $swupdfile6, $swupdfile7 ;Updatefile
    Dim $swupdAll1, $swupdAll2, $swupdAll3, $swupdAll4, $swupdAll5, $swupdAll6, $swupdAll7 ;UpdateGesamt

    Dim $openproc1, $openproc2, $openproc3, $openproc4, $openproc5, $openproc6, $openproc7 ;OpenProcesses

    ;Label
    $lbswupd1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd1", "NichtGefunden") ;CCleaner
    $lbswupd2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd2", "NichtGefunden") ;Notepad++
    $lbswupd3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd3", "NichtGefunden") ;VLC Player
    $lbswupd4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd4", "NichtGefunden") ;PicPick
    $lbswupd5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd5", "NichtGefunden") ;Teamviewer
    $lbswupd6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd6", "NichtGefunden") ;FoxIt
    $lbswupd7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd7", "NichtGefunden") ;N.N

    ;BatchPath
    $swupdbatch1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch1", "NichtGefunden")
    $swupdbatch2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch2", "NichtGefunden")
    $swupdbatch3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch3", "NichtGefunden")
    $swupdbatch4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch4", "NichtGefunden")
    $swupdbatch5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch5", "NichtGefunden")
    $swupdbatch6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch6", "NichtGefunden")
    $swupdbatch7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch7", "NichtGefunden")

    ;Batchfile
    $swupd1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd1", "NichtGefunden")
    $swupd2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd2", "NichtGefunden")
    $swupd3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd3", "NichtGefunden")
    $swupd4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd4", "NichtGefunden")
    $swupd5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd5", "NichtGefunden")
    $swupd6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd6", "NichtGefunden")
    $swupd7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd7", "NichtGefunden")

    ;BatchGesamt
    $batchAll1 = $swupdbatch1 & $swupd1
    $batchAll2 = $swupdbatch2 & $swupd2
    $batchAll3 = $swupdbatch3 & $swupd3
    $batchAll4 = $swupdbatch4 & $swupd4
    $batchAll5 = $swupdbatch5 & $swupd5
    $batchAll6 = $swupdbatch6 & $swupd6
    $batchAll7 = $swupdbatch7 & $swupd7

    ;UpdatePath
    $swupdpath1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath1", "NichtGefunden")
    $swupdpath2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath2", "NichtGefunden")
    $swupdpath3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath3", "NichtGefunden")
    $swupdpath4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath4", "NichtGefunden")
    $swupdpath5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath5", "NichtGefunden")
    $swupdpath6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath6", "NichtGefunden")
    $swupdpath7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath7", "NichtGefunden")

    ;Updatefile
    $swupdfile1 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile1", "NichtGefunden")
    $swupdfile2 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile2", "NichtGefunden")
    $swupdfile3 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile3", "NichtGefunden")
    $swupdfile4 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile4", "NichtGefunden")
    $swupdfile5 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile5", "NichtGefunden")
    $swupdfile6 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile6", "NichtGefunden")
    $swupdfile7 = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile7", "NichtGefunden")

    ;UpdateGesamt
    $swupdAll1 = $swupdpath1 & $swupdfile1
    $swupdAll2 = $swupdpath2 & $swupdfile2
    $swupdAll3 = $swupdpath3 & $swupdfile3
    $swupdAll4 = $swupdpath4 & $swupdfile4
    $swupdAll5 = $swupdpath5 & $swupdfile5
    $swupdAll6 = $swupdpath6 & $swupdfile6
    $swupdAll7 = $swupdpath7 & $swupdfile7

    ;Date
    $Date = StringLeft(_Now(), 10)

    ;GUI
    $Form1 = GUICreate("Software Updater", 220, 210, 500, 230)
    GUISetIcon(@ScriptDir & "\swupd.ico")
    $Group1 = GUICtrlCreateGroup("Choose for update ... Last Update", 8, 8, 200, 163)

    $Label1 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate1", "NichtGefunden") & ")", 143, 28, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label2 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate2", "NichtGefunden") & ")", 143, 48, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label3 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate3", "NichtGefunden") & ")", 143, 68, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label4 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate4", "NichtGefunden") & ")", 143, 88, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label5 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate5", "NichtGefunden") & ")", 143, 108, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label6 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate6", "NichtGefunden") & ")", 143, 128, 60, 20)
    GUICtrlSetFont(-1,7)
    $Label7 = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate7", "NichtGefunden") & ")", 143, 148, 60, 20)
    GUICtrlSetFont(-1,7)

    $Checkbox1 = GUICtrlCreateCheckbox($lbswupd1, 16, 25, 75, 20)
    $Checkbox2 = GUICtrlCreateCheckbox($lbswupd2, 16, 45, 75, 17)
    $Checkbox3 = GUICtrlCreateCheckbox($lbswupd3, 16, 65, 75, 17)
    $Checkbox4 = GUICtrlCreateCheckbox($lbswupd4, 16, 85, 75, 17)
    $Checkbox5 = GUICtrlCreateCheckbox($lbswupd5, 16, 105, 75, 17)
    $Checkbox6 = GUICtrlCreateCheckbox($lbswupd6, 16, 125, 75, 17)
    $Checkbox7 = GUICtrlCreateCheckbox($lbswupd7, 16, 145, 75, 17)

    $Button1 = GUICtrlCreateButton("Update", 8, 176, 90, 25, 0)
    $Button2 = GUICtrlCreateButton("Close", 117, 176, 90, 25, 0)

    GUISetState()


    ;Check existing Update-File
    If Not FileExists($swupdAll1) Then
    GUICtrlSetState($Checkbox1, $GUI_DISABLE)
    GUICtrlSetState($Label1, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll2) Then
    GUICtrlSetState($Checkbox2, $GUI_DISABLE)
    GUICtrlSetState($Label2, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll3) Then
    GUICtrlSetState($Checkbox3, $GUI_DISABLE)
    GUICtrlSetState($Label3, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll4) Then
    GUICtrlSetState($Checkbox4, $GUI_DISABLE)
    GUICtrlSetState($Label4, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll5) Then
    GUICtrlSetState($Checkbox5, $GUI_DISABLE)
    GUICtrlSetState($Label5, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll6) Then
    GUICtrlSetState($Checkbox6, $GUI_DISABLE)
    GUICtrlSetState($Label6, $GUI_DISABLE)
    EndIf

    If Not FileExists($batchAll7) Then
    GUICtrlSetState($Checkbox7, $GUI_DISABLE)
    GUICtrlSetState($Label7, $GUI_DISABLE)
    EndIf

    ;Check open Processes
    ;~ $openproc1 = ProcessExists("CCleaner.exe")
    ;~ $openproc2 = ProcessExists("VLC.exe")
    ;~ $openproc3 = ProcessExists("Notepad++.exe")
    ;~ $openproc4 = ProcessExists("picpick.exe")
    ;~ $openproc5 = ProcessExists("Teamviewer.exe") Or ProcessExists("Teamviewer_.exe")
    ;~ $openproc6 = ProcessExists("FoxIt Reader.exe")
    ;~ $openproc7 =

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Checkbox1 And BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd1
    Case $msg = $Checkbox2 And BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd2
    Case $msg = $Checkbox3 And BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd3
    Case $msg = $Checkbox4 And BitAND(GUICtrlRead($Checkbox4), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd4
    Case $msg = $Checkbox5 And BitAND(GUICtrlRead($Checkbox5), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd5
    Case $msg = $Checkbox6 And BitAND(GUICtrlRead($Checkbox6), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd6
    Case $msg = $Checkbox7 And BitAND(GUICtrlRead($Checkbox7), $GUI_CHECKED) = $GUI_CHECKED
    $lbswupd = $lbswupd7
    Case $msg = $Button1
    TrayTip("Update läuft", "Das Update von " & $lbswupd & " läuft ...",10,0.5)

    If _getCheckboxState($Checkbox1) = 1 Then RunWait($batchAll1)
    If _getCheckboxState($Checkbox1) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate1", $Date)
    If _getCheckboxState($Checkbox1) = 1 Then GUICtrlSetData($Label1,$Date)
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox2) = 1 Then RunWait($batchAll2)
    If _getCheckboxState($Checkbox2) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate2", $Date)
    If _getCheckboxState($Checkbox2) = 1 Then GUICtrlSetData($Label2,$Date)
    GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox3) = 1 Then RunWait($batchAll3)
    If _getCheckboxState($Checkbox3) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate3", $Date)
    If _getCheckboxState($Checkbox3) = 1 Then GUICtrlSetData($Label3,$Date)
    GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox4) = 1 Then RunWait($batchAll4)
    If _getCheckboxState($Checkbox4) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate4", $Date)
    If _getCheckboxState($Checkbox4) = 1 Then GUICtrlSetData($Label4,$Date)
    GUICtrlSetState($Checkbox4, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox5) = 1 Then RunWait($batchAll5)
    If _getCheckboxState($Checkbox5) = 1 Then GUICtrlSetData($Label5,$Date)
    If _getCheckboxState($Checkbox5) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate5", $Date)
    GUICtrlSetState($Checkbox5, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox6) = 1 Then RunWait($batchAll6)
    If _getCheckboxState($Checkbox6) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate6", $Date)
    If _getCheckboxState($Checkbox6) = 1 Then GUICtrlSetData($Label6,$Date)
    GUICtrlSetState($Checkbox6, $GUI_UNCHECKED)

    If _getCheckboxState($Checkbox7) = 1 Then RunWait($batchAll7)
    If _getCheckboxState($Checkbox7) = 1 Then IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate7", $Date)
    If _getCheckboxState($Checkbox7) = 1 Then GUICtrlSetData($Label7 ,$Date)
    GUICtrlSetState($Checkbox7, $GUI_UNCHECKED)

    TrayTip("","",0)
    Case $msg = $Button2
    Exit
    EndSelect
    WEnd


    Func _getCheckboxState($controlID)
    Return BitAND(GUICtrlRead($controlID),$GUI_CHECKED)
    EndFunc


    Mir geht es im Speziellen um die ganzen einzulesenden Werte, die man betimmt mittels Arrays straffen bzw. besser verarbeiten kann.
    Leider weiss ich nicht so genau wie das anzustellen ist.


    Please help .... :wacko:

    Danke schon mal

    Gruss

    ugt100

    Einmal editiert, zuletzt von ugt100 (18. November 2010 um 09:11)

  • Hallo ugt100,

    ja dieses Skript man gut kürzen, habe im Moment aber keine Zeit. Hier ein Beispiel:

    [autoit]

    Global $lblDate[8] ;Element 0 nicht besetzt
    for $i = 1 to 7
    $lblDate[$i] = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate" & $i, "NichtGefunden") & ")", 143, 8 + $i * 20, 60, 20)
    GUICtrlSetFont(-1, 7)
    Next

    [/autoit]

    mfg autoBert

  • Hallo autobert,

    danke für die schnelle Antwort bzw. den schnellen Tip.
    Ich habe mir das mal auf die Schnelle angesehen und denke damit klar zu kommen.
    So ähnlich habe ich mir das schon gedacht, bloss an der Umsetzung hapert(e) es.

    Werde mich dransetzen und berichten.

    DANKE

    Gruss
    ugt100 :thumbup:

  • Hoffe mal das es noch funktioniert.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <Date.au3>

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

    Global $iCount = 8
    Dim $aLbswupd[$iCount] ;Label
    Dim $aSwupdbatch[$iCount] ;BatchPath
    Dim $aSwupd[$iCount] ;Batchfile
    Dim $aBatchAll[$iCount] ;BatchGesamt
    Dim $aLabel[$iCount]
    Dim $aSwupdpath[$iCount] ;UpdatePath
    Dim $aSwupdfile[$iCount] ;Updatefile
    Dim $aSwupdAll[$iCount];UpdateGesamt
    Dim $aCheckbox[$iCount]

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

    ;GUI
    $Form1 = GUICreate("Software Updater", 220, 210, 500, 230)
    GUISetIcon(@ScriptDir & "\swupd.ico")
    $Group1 = GUICtrlCreateGroup("Choose for update ... Last Update", 8, 8, 200, 163)
    $lTop = 28
    $cTop = 25
    For $i = 1 To $iCount - 1
    $aLbswupd[$i] = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Label", "$lbswupd" & $i, "NichtGefunden")
    $aSwupdbatch[$i] = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "BatchPath", "$swupdbatch" & $i, "NichtGefunden")
    $aSwupd[$i] = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "Batch", "$swupd" & $i, "NichtGefunden")
    $aBatchAll[$i] = $aSwupdbatch[$i] & $aSwupd[$i]
    $aSwupdpath[$i] = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdatePath", "$swupdpath" & $i, "NichtGefunden")
    $aSwupdfile[$i] = IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateFile", "$swupdfile" & $i, "NichtGefunden")
    $aSwupdAll[$i] = $aSwupdpath[$i] & $aSwupdfile[$i]
    $aLabel[$i] = GUICtrlCreateLabel("(" & IniRead(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate" & $i, "NichtGefunden") & ")", 143, $lTop, 60, 20)
    GUICtrlSetFont($aLabel[$i], 7)
    $lTop += 20
    $aCheckbox[$i] = GUICtrlCreateCheckbox($aLbswupd[$i], 16, $cTop, 75, 20)
    $cTop += 20
    If Not FileExists($aSwupdAll[$i]) Then
    GUICtrlSetState($aCheckbox[$i], $GUI_DISABLE)
    GUICtrlSetState($aLabel[$i], $GUI_DISABLE)
    EndIf
    Next
    $Button1 = GUICtrlCreateButton("Update", 8, 176, 90, 25, 0)
    $Button2 = GUICtrlCreateButton("Close", 117, 176, 90, 25, 0)
    $Date = StringLeft(_Now(), 10)
    GUISetState()

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

    ;Check open Processes
    ;~ $openproc1 = ProcessExists("CCleaner.exe")
    ;~ $openproc2 = ProcessExists("VLC.exe")
    ;~ $openproc3 = ProcessExists("Notepad++.exe")
    ;~ $openproc4 = ProcessExists("picpick.exe")
    ;~ $openproc5 = ProcessExists("Teamviewer.exe") Or ProcessExists("Teamviewer_.exe")
    ;~ $openproc6 = ProcessExists("FoxIt Reader.exe")
    ;~ $openproc7 =

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Button1
    For $i = 1 To $iCount - 1
    If _getCheckboxState($aCheckbox[$i]) = 1 Then
    TrayTip("Update läuft", "Das Update von " & $aLbswupd[$i] & " läuft ...", 10, 0.5)
    RunWait($aBatchAll[$i])
    IniWrite(@ScriptDir & "\CDE_SWUpdater.ini", "UpdateDate", "$swupddate" & $i, $Date)
    GUICtrlSetData($aLabel[$i], $Date)
    GUICtrlSetState($aCheckbox[$i], $GUI_UNCHECKED)
    EndIf
    Next
    TrayTip("", "", 0)
    Case $msg = $Button2
    Exit
    EndSelect
    WEnd

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

    Func _getCheckboxState($controlID)
    Return BitAND(GUICtrlRead($controlID), $GUI_CHECKED)
    EndFunc ;==>_getCheckboxState

    [/autoit]