Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $ini = @ScriptDir & "\liste.ini"
#Region ### START Koda GUI section ### Form=
$hGUI = GUICreate("Projet", 375, 307, 522, 284)
$Checkbox1 = GUICtrlCreateCheckbox("", 4, 4, 160, 17)
$Checkbox2 = GUICtrlCreateCheckbox("", 4, 24, 160, 17)
$Checkbox3 = GUICtrlCreateCheckbox("", 4, 44, 160, 17)
$Checkbox4 = GUICtrlCreateCheckbox("", 4, 64, 160, 17)
$Checkbox5 = GUICtrlCreateCheckbox("", 4, 84, 160, 17)
$Checkbox6 = GUICtrlCreateCheckbox("", 4, 104, 160, 17)
$Checkbox7 = GUICtrlCreateCheckbox("", 4, 124, 160, 17)
$Checkbox8 = GUICtrlCreateCheckbox("", 4, 144, 160, 17)
$Checkbox9 = GUICtrlCreateCheckbox("", 4, 164, 160, 17)
$Checkbox10 = GUICtrlCreateCheckbox("", 4, 184, 160, 17)
$Checkbox11 = GUICtrlCreateCheckbox("", 4, 204, 160, 17)
$Checkbox12 = GUICtrlCreateCheckbox("", 4, 224, 160, 17)
$Checkbox13 = GUICtrlCreateCheckbox("", 4, 244, 160, 17)
$Checkbox14 = GUICtrlCreateCheckbox("", 4, 264, 160, 17)
$Checkbox15 = GUICtrlCreateCheckbox("", 4, 284, 160, 17)
$idajoutprog = GUICtrlCreateButton("Ajouter un programme à l'interface", 188, 4, 183, 49)
$idControlID = GUICtrlCreateButton("Lancer l'installation des programmes sélectionnés", 188, 148, 183, 49)
$Button3 = GUICtrlCreateButton("Supprimer les programmes selectionnés de l'interface", 188, 56, 183, 49)
$Button4 = GUICtrlCreateButton("Reconnecter le disque réseau Z:", 188, 276, 183, 25)
_rafraichissement()
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idajoutprog
$choixfichier = FileOpenDialog("Fichier à ajouter", "****", "Tous (*.*)", 4)
If @error Then
MsgBox(1, "", "No File(s) chosen")
Else ;~ Si un fichier a effectivement été choisi ...
For $i = 1 To 15 ;~ ... on part à la recherche du premier emplacement vide dans le fichier INI
If IniRead($ini, "LISTE", $i, "") = "" Then ;~ (chaque emplacement correspond à une checkbox)
IniWrite($ini, "LISTE", $i, $choixfichier) ;~ ... et on écrit le chemin d'accès complet selectionné dans le fichier.
ExitLoop (1)
EndIf
Next
EndIf
_rafraichissement()
Case $idControlID
;~ on lance les programmes cochés les uns après les autres
EndSwitch
WEnd
Func _rafraichissement()
_peuplement($Checkbox1,1)
_peuplement($Checkbox2,2)
_peuplement($Checkbox3,3)
_peuplement($Checkbox4,4)
_peuplement($Checkbox5,5)
_peuplement($Checkbox6,6)
_peuplement($Checkbox7,7)
_peuplement($Checkbox8,8)
_peuplement($Checkbox9,9)
_peuplement($Checkbox10,10)
_peuplement($Checkbox11,11)
_peuplement($Checkbox12,12)
_peuplement($Checkbox13,13)
_peuplement($Checkbox14,14)
_peuplement($Checkbox15,15)
EndFunc ;==>_rafraichissement
Func _peuplement($checkbox,$clef)
If IniRead($ini, "LISTE", $clef, "") <> "" Then ;~ Si la clef dans le fichier INI correspondant à la checkbox n'est pas vide ...
$liste = StringSplit(IniRead($ini, "LISTE", $clef, ""), "\") ;~ ... on récupère la valeur dans le fichier INI, on la découpe dans un tableau avec "\" comme délimiteur ...
$temp = $liste[UBound($liste) - 1] ;~ ... on récupère le dernier morceau, le nom du fichier (avec son extension) ...
GUICtrlSetData($checkbox, StringLeft($temp, StringLen($temp) - 4)) ;~ ... et on affiche comme texte de la checkbox le nom du fichier sans son extension (et le point qui va avec).
GUICtrlSetState($checkbox, 16) ;~ ... on affiche la checkbox ...
Else
GUICtrlSetState($checkbox, 32) ;~ ... sinon on la masque.
EndIf
EndFunc ;==>_peuplement