[..] Exécuter tous les fichiers sélectionnés d'un dossier et/ou sous dossier les uns après les autres.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

[..] Exécuter tous les fichiers sélectionnés d'un dossier et/ou sous dossier les uns après les autres.

#1

Message par Boulanza »

Bonjour,
Exécuter tous les fichiers sélectionnés d'un dossier et/ou sous dossier les uns après les autres.
1- Une fois sélectionnés avec « $sFileOpenDialog » seront copiers dans « GUICtrlCreateList »
2- Dans « GUICtrlCreateList » les fichiers(Filename) seront rangés à gauche dans la grille (Le Champ) et à droite le « Folderpath » (In Folder). Filename et Folderpath sont séparés par un espace vide.
3- Les fichiers sélectionnés d'un dossier et/ou sous dossier seront exécuter automatiquement les uns après les autres, puis ranger dans un autre « GUICtrlCreateList »
4- A la fin de l’opération, un message soit il nous indique que l’opération est réussi à 100%, sino les fichiers corrompus seront souligner en rouge.
Le code ci-joint c’est juste un exemple de ce que je veux réaliser avec votre aide.
Merci d’avance pour votre aide.
Cordialement.
#include <GUIConstantsEx.au3>
   #include <MsgBoxConstants.au3>
   Example01()
   Func Example01()
   If @error Then Exit ;pas de choix on sort
   $filter = "*.exe"
   GUICreate("My GUI list") ; will create a dialog box that when displayed is centered

   Local $idButton_Add_File = GUICtrlCreateButton("Add File(s)", 90, 10, 75, 25)
   Local $idButton_Add_Folder = GUICtrlCreateButton("Add Folder", 240, 10, 75, 25)
   Local $idButton_Clear = GUICtrlCreateButton("Clear List", 315, 158, 75, 25)
   Local $idMylist1 = GUICtrlCreateList("", 10, 40, 380, 120)
   Local $idMylist2 = GUICtrlCreateList("", 10, 200, 380, 120)
   Local $FrLabel1 = GUICtrlCreateLabel("Liste des fichiers exécutés", 10, 183, 132, 15)
   Local $FrLabel2 = GUICtrlCreateLabel("Filename", 15, 44, 50, 15)
   Local $FrLabel3 = GUICtrlCreateLabel("In Folder", 240, 44, 50, 15)
   GUICtrlSetLimit(-1, 200) ; to limit horizontal scrolling

   Local $idButton_Execute = GUICtrlCreateButton("ShellExecute", 64, 360, 75, 25)
   Local $idButton_Close = GUICtrlCreateButton("Exit", 240, 360, 75, 25)
   GUISetState(@SW_SHOW)
   While 1
   Switch GUIGetMsg()
   Case $GUI_EVENT_CLOSE
   ExitLoop

   Case $idButton_Add_File
   Local $sFileOpenDialog = FileOpenDialog("", @DesktopDir, "All(*.*)" , BitOr($FD_FILEMUSTEXIST, $FD_MULTISELECT)) ;renvoie chemin|fichier1|fichier2|etc...
   GUICtrlSetData($idMylist1, $sFileOpenDialog)

   Case $idButton_Add_Folder

   $filepath = FileSelectFolder("choisir",@DesktopDir) ;choix du dossier
   If @error Then Exit ;pas de choix on sort
   $filter = "*.exe"
   $array = _FileListToArray($filepath,$filter, $FLTA_FILESFOLDERS ,True);tableau avec l'adresse des fichiers
   ;$array = _FileListToArrayRec($filepath,$filter, $FLTA_FILESFOLDERS ,True) ;Si vous avez des sous dossiers, il faudra utiliser _FileListToArrayRec()

   If @error Then Exit MsgBox(0,"","pas trouvé " & $filter)
   _ArrayDisplay($array) ;pour voir le résultat
   For $i = 1 To $array[0] ; boucle sur le tableau pour lire chaque ligne $array[0] contient le nb de lignes
   GUICtrlSetData($idMylist1, $array[$i])
   Next

   Case $idButton_Clear
   GUICtrlSetData($idMylist1, "")

   Case $idButton_Execute
   ;ShellExecuteWait($array[$i]); exécute le fichier et attend sa fermeture

   Case $idButton_Close
   Exit

   EndSwitch
   WEnd
   EndFunc   ;==>Example
Répondre