J'ai réalisé un script qui me permet de copier le contenu d'un dossier dans une ou plusieurs destinations.
Pour l'instant je rentre en dur dans le script le dossier source, mais j'aimerais pouvoir le choisir sans être obligé de le saisir dans une variable (l'ideal serait de pouvoir creer un bouton parcourir)
est-ce possible ?
Pardon pour le code qui n'est pas du tout optimiser pour l'instant, mais le script fonctionne, en rouge la variable que j'aimerais remplir avec un bouton parcourir
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#include<Array.au3>
#Region ### START Koda GUI section ### Form=e:\koda_2009-02-10\forms\test.kxf
$Form2 = GUICreate("Parametres de copie", 410, 301, 216, 182)
GUISetIcon("D:\003.ico")
$GroupBox1 = GUICtrlCreateGroup("", 8, 1, 393, 257)
$ip = GUICtrlCreateInput("ip", 104, 96, 89, 21)
$chemin = GUICtrlCreateInput("Documents and Settings", 64, 184, 137, 21)
$Label1 = GUICtrlCreateLabel("\\ip\c$\", 16, 184, 45, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Ctx1 = GUICtrlCreateCheckbox("Citrix 1", 32, 40, 97, 17)
$Ctx2 = GUICtrlCreateCheckbox("Citrix 2", 32, 56, 97, 17)
$Ctx3 = GUICtrlCreateCheckbox("Citrix 3", 32, 72, 97, 17)
$Label4 = GUICtrlCreateLabel("", 168, 48, 4, 4)
GUICtrlCreateLabel("", 136, 16, 4, 4)
$Label5 = GUICtrlCreateLabel("Choix des serveurs :", 16, 16, 99, 17)
$Label6 = GUICtrlCreateLabel("Dossier de destination :", 16, 152, 114, 17)
$Dossier = GUICtrlCreateInput("windows", 272, 184, 97, 21)
$Label3 = GUICtrlCreateLabel("\%user%\", 208, 184, 62, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label7 = GUICtrlCreateLabel("----------------------------------------------------------------------------", 96, 128, 232, 17)
$Label8 = GUICtrlCreateLabel("\", 376, 184, 8, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Autre = GUICtrlCreateCheckbox("Autre", 32, 96, 57, 17)
$Label2 = GUICtrlCreateLabel("Si le dossier n'existe pas pour le user, il sera créé automatiquement", 16, 232, 317, 17)
GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x808080)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("&Lancer la copie", 153, 259, 91, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ip
Case $Button1
$valeurdossier = GUICtrlRead($Dossier)
if GUICtrlRead($Ctx1) = 1 then
$ipCtx1 = "10.128.0.203"
$valeurip = $ipCtx1
$valeurchemin = GUICtrlRead($chemin)
$utilisateurs = "\\"&$valeurip&"\C$\"&$valeurchemin&"\"
[color=#FF0000]$racine = "C:\script GJA\a copier\"[/color]
sleep(200)
; liste des dossiers
$FileList=_FileListToArray($utilisateurs, "*.*", 2)
sleep(300)
If @Error=1 Then
MsgBox (0,"","No Files\Folders Found.")
Exit
EndIf
ProgressOn("Veuillez patienter", "Mise à Jour en cours", "")
; boucle de copy
For $indice = 1 to $FileList[0]
FileCopy ($racine&"*.*",$utilisateurs&$FileList[$indice]&"\"&$valeurdossier&"\" , 9 )
ProgressSet( $indice, "Serveur : "&$valeurip&" Mise à Jour du dossier : "&$FileList[$indice])
sleep(100)
Next
ProgressOff()
sleep(100)
endif
If GUICtrlRead($Ctx2) = 1 then
$ipCtx2 = "10.128.0.204"
$valeurip = $ipCtx2
$valeurchemin = GUICtrlRead($chemin)
$utilisateurs = "\\"&$valeurip&"\C$\"&$valeurchemin&"\"
$racine = "C:\script GJA\a copier\"
sleep(200)
; liste des dossiers
$FileList=_FileListToArray($utilisateurs, "*.*", 2)
sleep(300)
If @Error=1 Then
MsgBox (0,"","No Files\Folders Found.")
Exit
EndIf
ProgressOn("Veuillez patienter", "Mise à Jour en cours", "")
; boucle de copy
For $indice = 1 to $FileList[0]
FileCopy ($racine&"*.*",$utilisateurs&$FileList[$indice]&"\"&$valeurdossier&"\" , 9 )
ProgressSet( $indice, "Serveur : "&$valeurip&" Mise à Jour du dossier : "&$FileList[$indice])
sleep(100)
Next
ProgressOff()
sleep(100)
endif
If GUICtrlRead($Ctx3) = 1 then
$ipCtx3 = "10.128.0.205"
$valeurip = $ipCtx3
$valeurchemin = GUICtrlRead($chemin)
$utilisateurs = "\\"&$valeurip&"\C$\"&$valeurchemin&"\"
$racine = "C:\script GJA\a copier\"
sleep(200)
; liste des dossiers
$FileList=_FileListToArray($utilisateurs, "*.*", 2)
sleep(300)
If @Error=1 Then
MsgBox (0,"","No Files\Folders Found.")
Exit
EndIf
ProgressOn("Veuillez patienter", "Mise à Jour en cours", "")
; boucle de copy
For $indice = 1 to $FileList[0]
FileCopy ($racine&"*.*",$utilisateurs&$FileList[$indice]&"\"&$valeurdossier&"\" , 9 )
ProgressSet( $indice, "Serveur : "&$valeurip&" Mise à Jour du dossier : "&$FileList[$indice])
sleep(100)
Next
ProgressOff()
sleep(100)
endif
If GUICtrlRead($Autre) = 1 then
$ipAutre = GUICtrlRead($ip)
$valeurip = $ipAutre
$valeurchemin = GUICtrlRead($chemin)
$utilisateurs = "\\"&$valeurip&"\C$\"&$valeurchemin&"\"
$racine = "C:\script GJA\a copier\"
sleep(200)
; liste des dossiers
$FileList=_FileListToArray($utilisateurs, "*.*", 2)
sleep(300)
If @Error=1 Then
MsgBox (0,"","No Files\Folders Found.")
Exit
EndIf
ProgressOn("Veuillez patienter", "Mise à Jour en cours", "")
; boucle de copy
For $indice = 1 to $FileList[0]
FileCopy ($racine&"*.*",$utilisateurs&$FileList[$indice]&"\"&$valeurdossier&"\" , 9 )
ProgressSet( $indice, "Serveur : "&$valeurip&" Mise à Jour du dossier : "&$FileList[$indice])
sleep(100)
Next
ProgressOff()
sleep(100)
endif
MsgBox (0,"","Mise à Jour terminée")
Exit
EndSwitch
WEnd