Code : Tout sélectionner
#RequireAdmin
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
;~ Opt("MustDeclareVars", 1) ; À METTRE DANS TOUS VOS SCRIPTS !
Opt("GUIOnEventMode", 1) ; Activation du mode évenementiel
;Declaration de l'array principale!!!
; Si il y a plus de checkbox, remplacer le 42 par : (nombre de checkbox + 1)
; Depuis la derniere version d'AutoIt, vous n'êtes plus obligé d'indiquer le nombre de dimension lorsque vous déclarez le contenu explicitement
Enum $C_ID, $C_NOM, $C_NOMEXE, $C_COMMUN, $C_MSGBOX
Global $a_installer = [ [ ["", "Sécurité", "", False, ""], _
["", "Norton Antivirus", "Norton_Antivirus.exe", True, "J'aime les licones"], _
["", "Cobian Backup", "Cobian_Backup.exe", True, "J'aime les licones"]], _
[ ["", "Multimédia", "", False, ""], _
["", "AveIcon2", "AveIcon2.exe", False, "J'aime les licones"], _
["", "Camstudio", "Camstudio.exe", False, "J'aime les licones"], _
["", "Codec Camstudio", "Codec_Camstudio", False, "J'aime les licones"], _
["", "Flash IE", "Flash_IE.exe", True, "J'aime les licones"], _
["", "Flash Mozilla", "Flash_Mozilla.exe", True, "J'aime les licones"], _
["", "Java", "java.exe", True, "Java est un langage de programmation et une plate-forme informatique qui ont été créés par Sun Microsystems en 1995. Beaucoup d'applications et de sites Web ne fonctionnent pas si Java n'est pas installé et leur nombre ne cesse de croître chaque jour. Java est rapide, sécurisé et fiable."], _
["", "Photofiltre", "Photofiltre.exe", True, "J'aime les licones"], _
["", "The Gimp", "The_Gimp.exe", False, "J'aime les licones"], _
["", "VLC", "VLC.exe", False, "J'aime les licones"], _
["", "VSO Image Resizer", "VSo_Image_Resizer.exe", True, "J'aime les licones"]], _
[ ["", "Programmation", "", False, ""], _
["", "AutoIt", "AutoIt.exe", False, "J'adore l'europe, l'europe c'est super, j'adore l'europe, oui c'est vraiment d'enfer"], _
["", "Notepad", "NotePad.exe", False, "J'aime les licones"]], _
[ ["", "Système", "", False, ""], _
["", "CCleaner", "CCleaner.exe", True, "CCleaner (abréviation de Crap Cleaner) est un logiciel freeware permettant d'optimiser le fonctionnement d’un ordinateur muni du système d’exploitation Windows et de protéger la vie privée des utilisateurs de l’ordinateur. Il supprime les fichiers et les enregistrements inutiles, ce qui permet à l’ordinateur de fonctionner plus rapidement et libère de l’espace sur le disque dur."], _
["", "Dial A Fix", "Dial_A_Fix.exe", False, "J'aime les licones"]], _
[ ["", "Manipulation de fichiers", "", False, ""], _
["", "Full Sync", "Full_Sync.exe", False, "J'aime les licones"], _
["", "Super Copier", "Super_Copier.exe", False, "J'aime les licones"], _
["", "Lupas Rename", "Lupas_Rename.exe", False, "J'aime les licones"], _
["", "PC Inspector File Recovery", "PC_Inspector_File_Recovery.exe", True, "J'aime les licones"], _
["", "Rep Listing", "Rep_Listing.exe", False, "J'aime les licones"]], _
[ ["", "Scientifique", "", False, ""], _
["", "R", "R.exe", False, "J'aime les licones"], _
["", "SciLab", "SciLab.exe", False, "J'aime les licones"]], _
[ ["", "Bureautique", "", False, ""], _
["", "Foxit Reader", "Foxit_Reader.exe", True, "J'aime les licones"], _
["", "Open Office", "Open_Office.exe", True, "Open Office est une suite bureautique libre comprenant un traitement de texte, un tableur, un logiciel de présentation et un logiciel de dessin. Cette suite est entièrement gratuite et concurrente directe de Microsoft Office."], _
["", "PDF Creator", "PDF_Creator.exe", True, "J'aime les licones"], _
["", "Tex Maker", "Tex_Maker.exe", True, "J'aime les licones"]], _
[ ["", "Réseaux", "", False, ""], _
["", "Firefox", "Firefox.exe", True, "Firefox est un navigateur Web libre et gratuit, développé et distribué par la Mozilla Foundation avec l'aide de milliers de bénévoles grâce aux méthodes de développement du logiciel libre/open source et à la liberté du code source."], _
["", "IP Scan", "IP_Scan.exe", False, "J'aime les licones"], _
["", "Magic IP", "Magic_IP.exe", False, "J'aime les licones"], _
["", "NX", "NX.exe", True, "J'aime les licones"], _
["", "Putty SSH", "Putty_SSH.exe", False, "J'aime les licones"], _
["", "Super Scan", "Super_Scan.exe", False, "J'aime les licones"], _
["", "Thunderbird", "Thunderbird.exe", False, "J'aime les licones"], _
["", "TightVNC", "TightVNC.exe", False, "J'aime les licones"], _
["", "Ultr@VNC", "UltraVNC.exe", False, "J'aime les licones"], _
["", "Win2000 Plain Password", "Win2000_Plain_Password.exe", False, "J'aime les licones"], _
["", "Wireshark", "WireShark.exe", True, "J'aime les licones"], _
["", "XMing", "XMing.exe", False, "J'aime les licones"], _
["", "XMing Fonts", "XMing_fonts.exe", False, "J'aime les licones"]], _
[ ["", "Utilitaires", "", False, ""], _
["", "7Zip", "7zip.exe", True, "7-Zip est un logiciel de compression de données et d’archivage de fichiers fonctionnant sous Windows développé par le Russe Igor Pavlov. C’est un logiciel libre distribué sous licence LGPL, le code LZMA est dans le domaine public, le code AES est sous licence BSD et le code unRAR est sous licence mixte (LGPL + des restrictions unRAR)."]]]
Global $tailleGui = [751, 666]
$gui = GUICreate(" Selectionner les logiciels à installer ", $tailleGui[0], $tailleGui[1])
GUISetIcon("Data\autorun.ico")
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter") ;On associe l'évenement "Close" (Alt+F4 / Croix rouge / echap / etc) à la fonction quit
$installer = GUICtrlCreateButton(" Installer ", $tailleGui[0]-90, $tailleGui[1]-35, 75, 25, 0) ; Création du bouton "installer"
$quitter = GUICtrlCreateButton(" Quitter ", $tailleGui[0]-175, $tailleGui[1]-35, 75, 25, 0) ; Création du bouton "quitter"
$documentation = GUICtrlCreateButton(" Documentation ", 8, $tailleGui[1]-35, 83, 25, 0) ; Création du bouton "documentation"
$checkall = GUICtrlCreateCheckbox("Tout cocher / Tout décoher", 105, $tailleGui[1]-80, 177, 17)
$checkcommun = GUICtrlCreateCheckbox("Selectionner les logiciels communs", $tailleGui[0]-340, $tailleGui[1]-80, 209, 17)
GUICtrlSetOnEvent($installer, "install")
GUICtrlSetOnEvent($quitter, "quitter")
GUICtrlSetOnEvent($documentation, "documentation")
GUICtrlSetOnEvent($checkall, "allcheck")
GUICtrlSetOnEvent($checkcommun, "allcommun")
Local $pos = [5, 5]
Local $taille = [245, 0]
Local $tailleCheckbox = [100, 17]
Local $tailleDecalage = $tailleCheckbox[1]+15
For $i = 0 To UBound($a_installer, 1)-1
$taille[1] = getTailleByIndex($i)*$tailleDecalage+15
If($pos[1] + $taille[1] >= $tailleGui[1]-100) Then
$pos[0] += $taille[0] + 5
$pos[1] = 5
EndIf
$a_installer[$i][0][$C_ID] = GUICtrlCreateGroup($a_installer[$i][0][$C_NOM], $pos[0], $pos[1], $taille[0], $taille[1])
$pos[1] += 20
For $j = 1 To UBound($a_installer, 2)-1
If(StringLen($a_installer[$i][$j][$C_NOM]) = 0) Then ExitLoop
$a_installer[$i][$j][$C_ID] = GUICtrlCreateCheckbox($a_installer[$i][$j][$C_NOM], $pos[0]+20, $pos[1], $tailleCheckbox[0], $tailleCheckbox[1])
$pos[1] += $tailleDecalage
Next
Next
GUISetState(@SW_SHOW, $gui)
While(1)
Sleep(100)
WEnd
Func documentation()
Local $isRun = False
For $i = 0 To UBound($a_installer, 1)-1
For $j = 1 To UBound($a_installer, 2)-1
If($a_installer[$i][$j][$C_ID] <= 0) Then ExitLoop
If _Ischecked($a_installer[$i][$j][0]) then
$isRun=True
MsgBox(64, "Informations sur " & $a_installer[$i][$j][$C_NOM], $a_installer[$i][$j][$C_MSGBOX])
EndIf
Next
Next
If(Not($isRun)) Then
MsgBox(16, "Erreur","Vous n'avez rien coché")
EndIf
EndFunc
Func allcheck()
Local $state = _Ischecked($checkall) ? $GUI_CHECKED : $GUI_UNCHECKED
If _IsChecked($checkall) = $GUI_CHECKED Then
GUICtrlSetState($checkcommun,$GUI_UNCHECKED)
GUICtrlSetState($checkcommun,$GUI_DISABLE)
For $i = 0 To UBound($a_installer, 1)-1
For $j = 1 To UBound($a_installer, 2)-1
If($a_installer[$i][$j][$C_ID] <= 0) Then ExitLoop
GUICtrlSetState($a_installer[$i][$j][$C_ID], $state)
Next
Next
Else
GUICtrlSetState($checkcommun,$GUI_ENABLE)
GUICtrlSetState($checkcommun,$GUI_UNCHECKED)
For $i = 0 To UBound($a_installer, 1)-1
For $j = 1 To UBound($a_installer, 2)-1
If($a_installer[$i][$j][$C_ID] <= 0) Then ExitLoop
GUICtrlSetState($a_installer[$i][$j][$C_ID], $state)
Next
Next
EndIf
EndFunc
Func allcommun()
Local $state = _Ischecked($checkcommun) ? $GUI_CHECKED : $GUI_UNCHECKED
Local $i, $j
If _IsChecked($checkcommun) = $GUI_CHECKED Then
GUICtrlSetState($checkall,$GUI_DISABLE)
GUICtrlSetState($checkall,$GUI_UNCHECKED)
For $i = 0 To UBound($a_installer, 1)-1
For $j = 1 To UBound($a_installer, 2)-1
If($a_installer[$i][$j][$C_ID] <= 0) Then ExitLoop
If($a_installer[$i][$j][$C_COMMUN]) Then
GUICtrlSetState($a_installer[$i][$j][$C_ID], $state)
EndIf
Next
Next
Else
GUICtrlSetState($checkall,$GUI_ENABLE)
GUICtrlSetState($checkall,$GUI_UNCHECKED)
For $i = 0 To UBound($a_installer, 1)-1
For $j = 1 To UBound($a_installer, 2)-1
If($a_installer[$i][$j][$C_ID] <= 0) Then ExitLoop
If($a_installer[$i][$j][$C_COMMUN]) Then
GUICtrlSetState($a_installer[$i][$j][$C_ID], $state)
EndIf
Next
Next
EndIf
EndFunc
Func install()
Local $isRun = False
For $i = 0 To UBound($a_installer, 1)-1
For $j = 1 To UBound($a_installer, 2)-1
If($a_installer[$i][$j][$C_ID] <= 0) Then ExitLoop
If(_IsChecked($a_installer[$i][$j][$C_ID])) Then
$isRun = True
RunWait( @ScriptDir &"\installation\" & $a_installer[$i][$j][$C_NOMEXE] & "-ms")
Sleep(1000)
EndIf
Next
Next
If(Not($isRun)) Then
MsgBox(16, "Erreur","Vous n'avez rien coché")
EndIf
EndFunc
Func getTailleByIndex($indice)
Local $taille = 0
For $i = 1 To UBound($a_installer, 2)-1
If(StringLen($a_installer[$indice][$i][$C_NOM]) <= 0) Then ExitLoop
$taille += 1
Next
Return $taille
EndFunc
Func _Ischecked($control)
Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc
Func quitter()
Exit
EndFunc