benötige mal eine kleine hilfe

  • Hallo,

    bei diesem kleinen Script, ist es ja noch übersichtlich, jedoch stellt sich mir die Frage wie man es vieleicht besser bewerstelligen kann, die abfrage zu lösen. vorallem wenn die anzahl der checkboxen erhöht wird ?

    [autoit]

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

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

    $Form1 = GUICreate("Alice HUL Tool", 228, 113, 193, 125)
    GUISetBkColor(0xFFFFFF)
    $Checkbox1 = GUICtrlCreateCheckbox("Lookup Timer auf 120 sec Setzten", 16, 16, 185, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Internetzeitsync. Deaktivieren", 16, 40, 185, 17)
    $Button1 = GUICtrlCreateButton("OK", 56, 72, 113, 25, 0)
    GUICtrlSetState($Button1,$GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1, $Checkbox2
    if GUICtrlRead($Checkbox1) = $GUI_CHECKED Or GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    Else
    GUICtrlSetState($Button1,$GUI_DISABLE)
    EndIf
    Case $Button1
    if GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    RegWrite("HKEY_CURRENT_USER\Software\Respironics\Alice Sleepware\settings","lookup_timer","REG_DWORD",120)
    EndIf
    if guictrlread($Checkbox2) = $GUI_CHECKED Then
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters","Type","REG_SZ","NoSync")
    EndIf
    msgbox(0,"Meldung","Parameter erfolgreich gesetzt programm wird beendet")
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Edit_: einen Fehler bereits selber erkannt und entfernt.

  • Mit arrays

    Spoiler anzeigen
    [autoit]

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

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

    $Form1 = GUICreate("Alice HUL Tool", 228, 213, 193, 125)
    GUISetBkColor(0xFFFFFF)
    $Text = StringSplit ("Lookup Timer auf 120 sec Setzten|Internetzeitsync. Deaktivieren|3|4","|")
    Dim $Checkbox[4]
    $Pos = 16
    For $1 = 0 To 3
    $Checkbox[$1] = GUICtrlCreateCheckbox($Text[$1 +1], 16, $Pos, 185, 17)
    $Pos += 24
    Next
    ;~ GUICtrlCreateCheckbox("Internetzeitsync. Deaktivieren", 16, 40, 185, 17)
    $Button1 = GUICtrlCreateButton("OK", 56, 172, 113, 25, 0)
    GUICtrlSetState($Button1,$GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    GUISetState()

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

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

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

    Case $Button1
    if GUICtrlRead($Checkbox[0]) = $GUI_CHECKED Then
    RegWrite("HKEY_CURRENT_USER\Software\Respironics\Alice Sleepware\settings","lookup_timer","REG_DWORD",120)
    EndIf
    if guictrlread($Checkbox[1]) = $GUI_CHECKED Then
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters","Type","REG_SZ","NoSync")
    EndIf
    msgbox(0,"Meldung","Parameter erfolgreich gesetzt programm wird beendet")
    Exit
    EndSwitch
    For $1 = 0 To UBound ($Checkbox) -1
    If $nMsg = $Checkbox[$1] Then
    If GUICtrlRead($Checkbox[$1]) = $GUI_CHECKED Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    Else
    GUICtrlSetState($Button1,$GUI_DISABLE)
    EndIf
    EndIf
    Next
    WEnd

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

    mfg. Jam00