Checkbox auf check prüfen

  • Hi,

    ich habe mal ein kleines Problemchen. Ich lasse aus mehreren TXT Datei Computernamen auslesen. Jeder Computer soll einzeln ausgewählt werden können mit einer Checkbox. Es sollen dann auch nur die Aktionen für die Ausgewählten Computer ausgeführt werden. Darüber hinaus sollen die Computernamen für jede TXT Datei einen eigenen Reiter haben.

    Herzlichsten Dank vorab.

    Einmal editiert, zuletzt von H1tsugaya (22. Oktober 2009 um 08:27)

  • Ah wiedermal ein Fall für die Vereinigung der Seher.

    Es wäre schön, wenn du zu deinem Problem(das im Post nicht geschildert wird, denn das ist eigentlich nur eine Beschreibung deines Vorhabens), deinen Code posten könntest.
    Sonst können wir dir leider nicht so gut helfen.

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Ich hatte mal was ähnliches programmiert:

    Spoiler anzeigen
    [autoit]


    ;Coded by UEZ
    #include <WindowsConstants.au3>

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

    #include <StructureConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Test", 237, 143)
    $Checkbox1 = GUICtrlCreateCheckbox("Convert X", 8, 8, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Convert Y", 8, 40, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Convert Z", 8, 72, 97, 17)
    $Input1 = GUICtrlCreateInput("", 105, 8, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input2 = GUICtrlCreateInput("", 105, 40, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input3 = GUICtrlCreateInput("", 105, 72, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button1 = GUICtrlCreateButton("Load", 8, 104, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Save", 153, 104, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    Case $Button1
    Load()

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

    Case $Button2
    Save()

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

    Case $Checkbox1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf

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

    Case $Checkbox2
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) Then
    GUICtrlSetState($Input2, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input2, $GUI_DISABLE)
    EndIf

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

    Case $Checkbox3
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) Then
    GUICtrlSetState($Input3, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input3, $GUI_DISABLE)
    EndIf
    EndSwitch
    WEnd

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

    Func Save()
    Local $ini, $save_file, $filename, $dummy_array
    Local $filename_suffix = ".ini"
    Local $save_path = @ScriptDir
    $filename = ""
    $filename = FileSaveDialog("Save Project Request Form", $save_path, "Ini Files (*" & $filename_suffix & ")|All Files(*.*)", 16)
    If $filename <> "" Then
    $dummy_array = StringSplit($filename, ".")
    If UBound($dummy_array) > 0 Then
    $filename = $dummy_array[1] & $filename_suffix
    Else
    $filename = $filename_suffix
    EndIf
    If Not @error Then
    $ini = "[Input Section]" & @CRLF & _
    "Convert X=" & GUICtrlRead($Input1) & @CRLF & _
    "Convert Y=" & GUICtrlRead($Input2) & @CRLF & _
    "Convert Z=" & GUICtrlRead($Input3) & @CRLF & @CRLF & _
    "[Checkbox Section]" & @CRLF & _
    "Checkbox1=" & GUICtrlRead($Checkbox1) & @CRLF & _
    "Checkbox2=" & GUICtrlRead($Checkbox2) & @CRLF & _
    "Checkbox3=" & GUICtrlRead($Checkbox3) & @CRLF
    FileOpen($filename, 2)
    FileWrite($filename, $ini)
    FileClose($filename)
    EndIf
    EndIf
    EndFunc ;==>Save

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

    Func Load()
    Local $filename, $dummy_array, $line
    Local $filename_suffix = ".ini"
    Local $load_path = @ScriptDir
    $filename = ""
    $filename = FileOpenDialog("Load Project Request Form", $load_path, "Ini Files (*" & $filename_suffix & ")|All Files(*.*)", 1)
    If $filename <> "" Then
    $filename = FileOpen($filename, 0)
    If Not @error Then
    While 1
    $line = FileReadLine($filename)
    If @error = -1 Then ExitLoop
    If StringInStr($line, "Convert X=") Then GUICtrlSetData($Input1, StringMid($line, StringInStr($line, "=") + 1))
    If StringInStr($line, "Convert Y=") Then GUICtrlSetData($Input2, StringMid($line, StringInStr($line, "=") + 1))
    If StringInStr($line, "Convert Z=") Then GUICtrlSetData($Input3, StringMid($line, StringInStr($line, "=") + 1))
    If StringInStr($line, "Checkbox1=") = True And StringMid($line, StringInStr($line, "=") + 1) = 1 Then
    GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_ENABLE)
    EndIf
    If StringInStr($line, "Checkbox1=") = True And StringMid($line, StringInStr($line, "=") + 1) = 4 Then
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf
    If StringInStr($line, "Checkbox2=") = True And StringMid($line, StringInStr($line, "=") + 1) = 1 Then
    GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_ENABLE)
    EndIf
    If StringInStr($line, "Checkbox2=") = True And StringMid($line, StringInStr($line, "=") + 1) = 4 Then
    GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    EndIf
    If StringInStr($line, "Checkbox3=") = True And StringMid($line, StringInStr($line, "=") + 1) = 1 Then
    GUICtrlSetState($Checkbox3, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_ENABLE)
    EndIf
    If StringInStr($line, "Checkbox3=") = True And StringMid($line, StringInStr($line, "=") + 1) = 4 Then
    GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    EndIf
    WEnd
    FileClose($filename)
    EndIf
    EndIf
    EndFunc ;==>Load

    [/autoit]


    Gruß,
    UEZ

  • ich will das ich die einzelnen Computernamen in den Reitern auf checked prüfen.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <file.au3>

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

    dim $rechts = 25
    dim $rechts1 = 25
    Dim $Start = 35
    Dim $Start1 = 35
    Dim $Start2 = 35
    Dim $Start3 = 35
    Dim $Start4 = 35
    Dim $Start5 = 35
    Dim $Start6 = -290
    Dim $Zaehler = 25
    Dim $aArray
    Dim $checkbox
    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

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

    GUICreate("Wake on lan", 450,415)
    $button_Aufwecken = GUICtrlCreateButton("Aufwecken",340,390,100)
    $tab=GUICtrlCreateTab (10,10, 435,380)
    GUISetState(@SW_SHOW)

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

    $tab0=GUICtrlCreateTabitem ("Raum 3090")

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

    _FileReadToArray(@scriptDir & '\Raum 3090.txt', $aArray)

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

    For $t = 1 To $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox ( "" & $ausgabe[1], $rechts, $Start)
    $Start = $Start + $Zaehler

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


    Next

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

    $tab1=GUICtrlCreateTabitem ("Raum 4037")
    _FileReadToArray(@scriptDir & '\Raum 4037.txt', $aArray)

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

    For $t = 1 To $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox ( "" & $ausgabe[1], $rechts, $Start1)
    $Start1 = $Start1 + $Zaehler

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


    Next

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

    $tab2=GUICtrlCreateTabitem ("Raum 4043")
    _FileReadToArray(@scriptDir & '\Raum 4043.txt', $aArray)

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

    For $t = 1 To $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox ( "" & $ausgabe[1], $rechts, $Start2 )

    $Start2 = $Start2 + $Zaehler
    If $Start2 >380 then $rechts = 100
    if $rechts =100 Then $Start2=$Start6
    $Start6 = $Start6 + $Zaehler

    Next

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

    $tab3=GUICtrlCreateTabitem ("Raum 4044")
    _FileReadToArray(@scriptDir & '\Raum 4044.txt', $aArray)

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

    For $t = 1 To $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox ( "" & $ausgabe[1],$rechts1, $Start3)
    $Start3 = $Start3 + $Zaehler

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


    Next

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

    $tab4=GUICtrlCreateTabitem ("Raum 5017")
    _FileReadToArray(@scriptDir & '\Raum 5017.txt', $aArray)

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

    For $t = 1 To $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox ( "" & $ausgabe[1], $rechts1, $Start4)
    $Start4 = $Start4 + $Zaehler

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


    Next

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

    $tab5=GUICtrlCreateTabitem ("Raum 5018")
    _FileReadToArray(@scriptDir & '\Raum 5018.txt', $aArray)

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

    For $t = 1 To $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox ( "" & $ausgabe[1], $rechts1, $Start5)
    $Start5 = $Start5 + $Zaehler

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


    Next

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit

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

    EndSelect

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


    WEnd

    [/autoit]
  • Versuch es einfach mal so:

    [autoit]

    _FileReadToArray(@scriptDir & '\Raum 3090.txt', $aArray)

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

    For $t=1 to $aArray[0]
    $ausgabe = StringSplit($aArray[$t], ";")

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

    $Checkbox[$t]=GUICtrlCreateCheckbox ( "" & $ausgabe[1], $rechts, $Start)
    $Start = $Start + $Zaehler
    Next
    GUICtrlCreateTabitem ("")

    [/autoit]

    Wichtig ist die letzte Zeile mit GUICtrlCreateTabitem (""), da du damit signalisierst, dass du mit dem Tab fertig bist.(Ist zwar jetzt nicht die richtige Erklärung aber es hat sich bei mir so eingeprägt :D )

    Auch musst du die Checkboxen deklarieren, damit du sie benutzen kannst. Dann kannst du mit der Abfrage beginnen

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Hallo H1tsugaya,

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <file.au3>

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

    Dim $rechts = 25
    Dim $rechts1 = 25
    Dim $Start = 35
    Dim $Start1 = 35
    Dim $Start2 = 35
    Dim $Start3 = 35
    Dim $Start4 = 35
    Dim $Start5 = 35
    Dim $Start6 = -290
    Dim $Zaehler = 25
    Dim $aArray
    Dim $checkbox
    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

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

    GUICreate("Wake on lan", 450, 415)
    $button_Aufwecken = GUICtrlCreateButton("Aufwecken", 340, 390, 100)
    $tab = GUICtrlCreateTab(10, 10, 435, 380)
    GUISetState(@SW_SHOW)

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

    $tab0 = GUICtrlCreateTabItem("Raum 3090")

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

    If Not _FileReadToArray(@ScriptDir & '\Raum 3090.txt', $aArray) Then

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

    For $t = 1 To UBound($aArray)
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox("" & $ausgabe[1], $rechts, $Start)
    $Start = $Start + $Zaehler

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

    Next

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

    EndIf
    $tab1 = GUICtrlCreateTabItem("Raum 4037")
    If Not _FileReadToArray(@ScriptDir & '\Raum 4037.txt', $aArray) Then

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

    For $t = 1 To UBound($aArray)
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox("" & $ausgabe[1], $rechts, $Start1)
    $Start1 = $Start1 + $Zaehler

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

    Next
    EndIf
    $tab2 = GUICtrlCreateTabItem("Raum 4043")
    If Not _FileReadToArray(@ScriptDir & '\Raum 4043.txt', $aArray) Then

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

    For $t = 1 To UBound($aArray)
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox("" & $ausgabe[1], $rechts, $Start2)

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

    $Start2 = $Start2 + $Zaehler
    If $Start2 > 380 Then $rechts = 100
    If $rechts = 100 Then $Start2 = $Start6
    $Start6 = $Start6 + $Zaehler

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

    Next
    EndIf
    $tab3 = GUICtrlCreateTabItem("Raum 4044")
    If Not _FileReadToArray(@ScriptDir & '\Raum 4044.txt', $aArray) Then

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

    For $t = 1 To UBound($aArray)
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox("" & $ausgabe[1], $rechts1, $Start3)
    $Start3 = $Start3 + $Zaehler

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

    Next
    EndIf
    $tab4 = GUICtrlCreateTabItem("Raum 5017")
    If Not _FileReadToArray(@ScriptDir & '\Raum 5017.txt', $aArray) Then

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

    For $t = 1 To UBound($aArray)
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox("" & $ausgabe[1], $rechts1, $Start4)
    $Start4 = $Start4 + $Zaehler

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

    Next
    EndIf
    $tab5 = GUICtrlCreateTabItem("Raum 5018")
    If Not _FileReadToArray(@ScriptDir & '\Raum 5018.txt', $aArray) Then

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

    For $t = 1 To UBound($aArray)
    $ausgabe = StringSplit($aArray[$t], ";")

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

    GUICtrlCreateCheckbox("" & $ausgabe[1], $rechts1, $Start5)
    $Start5 = $Start5 + $Zaehler

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

    Next
    EndIf
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit

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

    EndSelect

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

    WEnd

    [/autoit]


    Du solltest eine der Textdateien hochladen, damit man das Skript weiterentwickeln und auch testen kann,

    mfg (Auto)Bert

  • Hallo H1tsugaya,

    hier eine Lösungsvarianze mit Arrays

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <file.au3>
    #include <array.au3>

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

    Global $aArray
    Global $raum ; für Zählvariable
    Global $htab ; für ID des Tabcontrols
    Global $htabRaum[10] ; Array für IDs der TabItems
    Global $hchkPC[10][30] ; Array für IDs der Checkboxen für maximal 9 Räume à 29 PC
    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

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

    GUICreate("Wake on lan", 450, 415)
    Global $hbtnWakeUp = GUICtrlCreateButton("Auf&wecken", 340, 390, 100)
    $htab = GUICtrlCreateTab(10, 10, 435, 380)
    GUISetState(@SW_SHOW)

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

    For $raum = 1 To 6
    Switch $raum
    Case 1
    $FileToRead = @ScriptDir & '\Raum 3090.txt'
    $htabRaum[$raum] = GUICtrlCreateTabItem("Raum 3090")
    Case 2
    $FileToRead = @ScriptDir & '\Raum 4037.txt'
    $htabRaum[$raum] = GUICtrlCreateTabItem("Raum 4037")
    Case 3
    $FileToRead = @ScriptDir & '\Raum 4043.txt'
    $htabRaum[$raum] = GUICtrlCreateTabItem("Raum 4043")
    Case 4
    $FileToRead = @ScriptDir & '\Raum 4044.txt'
    $htabRaum[$raum] = GUICtrlCreateTabItem("Raum 4044")
    Case 5
    $FileToRead = @ScriptDir & '\Raum 5017.txt'
    $htabRaum[$raum] = GUICtrlCreateTabItem("Raum 5017")
    Case 6
    $FileToRead = @ScriptDir & '\Raum 5018.txt'
    $htabRaum[$raum] = GUICtrlCreateTabItem("Raum 5018")
    EndSwitch
    If _FileReadToArray($FileToRead,$aArray) Then

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

    For $pc = 1 To $aArray[0]
    ConsoleWrite($raum & " PC: " & $pc & @CRLF)
    $ausgabe = StringSplit($aArray[$pc], ";" & @CRLF)
    $i = Int(($pc + 9) / 10) * 80
    $j = Mod(($pc + 9), 10) * 25 + 80
    $hchkPC[$raum][$pc] = GUICtrlCreateCheckbox("" & $ausgabe[1], $i, $j)
    Next
    EndIf
    Next
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    case $msg = $hbtnWakeUp
    for $raum = 1 to 6
    For $pc = 1 to 29
    if BITAND(GUICtrlRead($hchkPC[$raum][$pc]),$GUI_CHECKED) = $GUI_CHECKED Then
    ConsoleWrite("Aufwachen PC " & $pc & " in Raum " & @CRLF);mit WOL-Befehl ersetzen
    EndIf
    Next
    Next
    EndSelect
    WEnd

    [/autoit]

    schau dir die benutzten Funktionen in der Hilfe an