Aaaalso:
1. Die Checkbox-Funktionen lassen sich vereinfachen. Dafür gibt es das Makro @GUI_CTRLID. Ausserdem vereinfacht es dir vieles, wenn du die Control-ID in ein Array packst. Das ganze könnte dann etwa so aussehen:
Spoiler anzeigen
...
; Da wo du die Checkboxen definierst. Kann man auch noch in eine Schleife packen.
Global $Checkbox[AnzahlCheckboxenHier]
$Checkbox[0] = GUICtrlCreateCheckbox("Aufgabe 1", 35, 113, 200, 40)
GUICtrlSetOnEvent(-1, "Checkbox")
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
...
; usw.
Func Checkbox1 ()
[/autoit] [autoit][/autoit] [autoit]$Index = _ArraySearch($Checkbox, @GUI_CTRLID)
[/autoit] [autoit][/autoit] [autoit]IniWrite (@ScriptDir & "\db.activity","active","1","1")
If BitAnd(GUICtrlRead($Checkbox[$Index]),$GUI_CHECKED) Then
GUICtrlSetBkColor($Checkbox[$Index], 0x00FF00)
_FileWriteLog ($logpath, " * " & $Userdone & " * erledigte Aufgabe 1")
GUICtrlSetData ($Label[$Index], $Userdone)
IniWrite($Dataini, 'GUI Update Box', '$Checkbox' & $Index, "1")
Else
GUICtrlSetBkColor($Checkbox[$Index], 0xFF0000)
_FileWriteLog ($logpath, " * " & $Userdone & " * hat Aufgabe " & $Index & " reaktiviert")
GUICtrlSetData ($Label[$Index], "")
IniWrite($Dataini, 'GUI Update Box', '$Checkbox' & $Index, "0")
EndIf
IniWrite($Dataini, 'GUI Update User', '$Checkbox' & $Index & 'User', $Userdone)
Sleep(10) ; 10 ist der Mindestwert
FileDelete (@ScriptDir & "\db.activity")
EndFunc
[/autoit]
Ist aber ungetestet! Hab versucht das ganze so gut wie möglich zusammenzufassen.
2. Dein Problem mit GuiUpdate sollte sich dadurch auch vereinfachen. Etwa so:
Spoiler anzeigen
Func GuiUpdate ()
[/autoit] [autoit][/autoit] [autoit]If $CB1update = 1
GUICtrlSetBkColor($Checkbox1, 0x00FF00)
GUICtrlSetState($Checkbox1, $GUI_CHECKED)
GUICtrlSetData ($Label1, $CB1user)
If $CB1user <> $Userdone Then GUICtrlSetState($Checkbox1, $GUI_DISABLE)
Else
GUICtrlSetBkColor($Checkbox1, 0xFF0000)
GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
GUICtrlSetData ($Label1, "")
GUICtrlSetState($Checkbox1, $GUI_ENABLE)
EndIf
EndFunc
[/autoit]
So. Teste das erstmal aus. Dann können wir ja noch weiterschauen.
Gruss Shadowigor