Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#NoTrayIcon
Fenetre()
Func Fenetre()
Global $var = DriveGetDrive("NETWORK")
Global $orth
If IsArray($var) Then
Dim $hauteur = $var[0] * 20 + 130
Dim $largeur = 330
Dim $h = 55
GuiCreate("Gestion des disques réseau...", $largeur, $hauteur)
GuiSetIcon(@SystemDir & "\SHELL32.dll", 11)
; LABEL
GuiCtrlCreateLabel("Sélectionner les disques réseau à supprimer ou à changer.", 0, 10, $largeur, 15, $SS_CENTER)
; LABEL
GuiCtrlCreateLabel("Michiels T.", $largeur-40, $hauteur-10, 42, 12)
GUICtrlSetColor (-1, 0xB2B2B2)
GUICtrlSetFont(-1,6)
; BUTTON
$Supprimer = GuiCtrlCreateButton("Supprimer", $largeur/2-115, $hauteur-45, 70, 30)
$Changer = GuiCtrlCreateButton("Changer", $largeur/2-35, $hauteur-45, 70, 30)
$Quitter = GuiCtrlCreateButton("Quitter", $largeur/2+45, $hauteur-45, 70, 30)
; GROUP
GUICtrlCreateGroup("Liste des disques réseau", 10, 35, 200, $hauteur-95)
GUICtrlCreateGroup("Nouvelle lettre", 232, 35, 86, $hauteur-95)
Global $CB[$var[0] + 1]
Global $LB[$var[0] + 1]
If Not @error Then
For $i = 1 To $var[0]
$dossier = StringReplace(DriveMapGet($var[$i]),"\\","")
$disque = StringSplit($dossier,"\",1)
$CB[$i] = GUICtrlCreateCheckbox(StringUpper($var[$i]) & " ( " & $disque[2] & " sur " & $disque[1] & " )", 25, $h, 181, 20)
GuiCtrlCreateLabel("è", 215, $h+2, 15, 15)
GUICtrlSetFont(-1, 10, 400, 0, "Wingdings")
; COMBO
$LB[$i] = GuiCtrlCreatecombo("", 256, $h, 37, 100)
GUICtrlSetData(-1, "F:|G:|H:|I:|J:|K:|L:|M:|N:|O:|P:|Q:|R:|S:|T:|U:|V:|W:|X:|Y:|Z:", StringUpper($var[$i]))
$h = $h + 20
Next
EndIf
GUISetState(@SW_SHOW)
Else
If $orth = "plus" then
MsgBox(64, "Alerte...", "Il n'y a plus de disque réseau installé...")
Else
MsgBox(64, "Alerte...", "Il n'y a aucun disque réseau installé...")
EndIf
Exit
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Supprimer
Supprimer()
Case $Changer
Changer()
Case $Quitter
Quitter()
EndSwitch
WEnd
EndFunc
Func Supprimer()
Global $nbCB = 0
Local $CBC
For $i = 1 to $Var[0]
If BitAND(GUICtrlRead($CB[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
$CBC &= GUICtrlRead($CB[$i], 1) & @CRLF
$nbCB = $nbCB + 1
EndIf
Next
Compteur()
Switch $nbCB
Case 1 to 20
Switch MsgBox(36, "Confirmation...", $texte & @CRLF & @CRLF & $CBC)
Case 6 ;oui
For $i = 1 to $Var[0]
If BitAND(GUICtrlRead($CB[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
DriveMapDel($var[$i])
EndIf
Next
If $var[0] = $nbCB Then $toto = "Plus"
GUIDelete()
Fenetre()
EndSwitch
EndSwitch
EndFunc
Func Changer()
Global $nbCB = 0
Local $CBC
For $i = 1 to $Var[0]
If BitAND(GUICtrlRead($CB[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
$CBC &= GUICtrlRead($CB[$i], 1) & " --> " & GUICtrlRead($LB[$i], 1) & @CRLF
$nbCB = $nbCB + 1
EndIf
Next
Compteur2()
Switch $nbCB
Case 1 to 20
Switch MsgBox(36, "Confirmation...", $texte & @CRLF & @CRLF & $CBC)
Case 6 ;oui
For $i = 1 to $Var[0]
If BitAND(GUICtrlRead($CB[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
DriveMapAdd(StringLower(GUICtrlRead($LB[$i])), DriveMapGet($var[$i]),1)
DriveMapDel($var[$i])
EndIf
Next
If $var[0] = $nbCB Then $toto = "Plus"
GUIDelete()
Fenetre()
EndSwitch
EndSwitch
EndFunc
Func Quitter()
Exit
EndFunc
Func Compteur()
Switch $nbCB
Case 1
Global $texte = "Voulez-vous vraiment supprimer le disque réseau suivant : "
Case 2 to 20
Global $texte = "Voulez-vous vraiment supprimer les disques réseau suivant : "
Case 0
MsgBox(48,"Alerte...","Vous devez d'abord sélectionner au moins un disque réseau.")
EndSwitch
EndFunc
Func Compteur2()
Switch $nbCB
Case 1
Global $texte = "Voulez-vous vraiment changer la lettre du disque réseau suivant : "
Case 2 to 20
Global $texte = "Voulez-vous vraiment changer les lettres des disques réseau suivant : "
Case 0
MsgBox(48,"Alerte...","Vous devez d'abord sélectionner au moins un disque réseau.")
EndSwitch
EndFunc