Hallo,
ich habe gleich zwei Anliegen:
1. In meinem Script gibt es x-viele und eine zusätzliche Checkbox ("Alle Installieren"). Leider weiss ich nicht, wie ich es handlen muss, dass nach dem aktivieren der zusätzl. Checkbox alle anderen ebenfalls gecheckt werden.
Ich vermute, dass ich auf das Event des Checkens der zusätzlichen reagieren muss, leider bin ich noch zu neu in dem Bereich als dass ich ads hinbekommen könnte.
Könnte mir dafür jemand Anstöße / Tipps geben wie ich dabei vorgehen muss? (Lösung + Herleitung wäre auch ok)
2. Jede gecheckte Box steht für eine DLL-Datei, die erst von A nach B kopiert und dann mit dem regsvr32 befehl registriert werden muss.
Wie binde ich es am Besten ein, dass möglichst wenig Aktionen / Code entsteht?
Achja hier der Code:
Spoiler anzeigen
; 01 September 2008 - Norman Schlorke
[/autoit] [autoit][/autoit] [autoit]; GUI erstellen
#include <GuiConstantsEx.au3>
Opt("GUIOnEventMode",1)
GuiCreate("Mesap 4.8.4 AddIns installieren", 400, 430)
; ========================================================================
; Funktionen / Events
; =======================================================================
GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
Func _Install()
$all = (GUICtrlRead($CheckboxAll) = $GUI_CHECKED)
If $all Then MsgBox(64, "AddIn Setup", "Es werden alle AddIns installiert!")
For $o = 0 To $CntFiles-1
If $all Or GUICtrlRead($CheckboxID[$o]) = $GUI_CHECKED Then
MsgBox(48, "AddIn Install", "Dieses AddIn wurde installiert: " & $Files[$o])
;~ DLLs-Kopierern & Registrieren
EndIf
Next
EndFunc
Func _ReadFiles()
$search = FileFindFirstFile("./aktuellste AddIns/*.dll")
Global $CntFiles = 0
Global $Files[1]
While 1
$DLL = FileFindNextFile($search)
If @error Then ExitLoop
$CntFiles = $CntFiles + 1
ReDim $Files[$CntFiles]
$Files[$CntFiles-1] = $DLL
WEnd
FileClose($search)
EndFunc
Func _CreateWindow()
$height = 40
Global $CheckboxID[$CntFiles]
For $i = 0 To $CntFiles-1
If $i = 12 Then $height = 40
If $i < 12 Then
$left = 55
Else
$left = 245
EndIf
$CheckboxID[$i] = GuiCtrlCreateCheckbox($Files[$i], $left, $height, 100, 20)
$height = $height + 26
Next
Global $CheckboxAll = GUICtrlCreateCheckbox("Alle Installieren",55, 357, 100, 20)
$Install = GuiCtrlCreateButton("Installieren", 15, 392, 70, 25)
GUICtrlSetOnEvent(-1, "_Install")
GUICtrlSetState(-1,$GUI_FOCUS)
$Exit = GuiCtrlCreateButton("Abbrechen", 315, 392, 70, 25)
GUICtrlSetOnEvent(-1, "_Close")
EndFunc
Func _Close()
GUIDelete()
Exit
EndFunc
; ========================================================================
; Starten des Scriptes
; ========================================================================
_ReadFiles()
_CreateWindow()
GuiSetState()
$msg = GUIGetMsg()
While True
WEnd
Exit
[/autoit]