Bien, c'est parfait.
J'ai modifier le code, pour un aspect graphique différent, et j'ai ajouter une nouvelle notion : le GUICtrlSetTip, qui permet d'afficher une bulle d'information avec le contenu complet du GuiCtrlCreateInput.
Code : Tout sélectionner
#include <GUIConstants.au3>
$LauncherGUI = GUICreate("Boîte à messages", 370, 100)
$LauncherLabel = GUICtrlCreateLabel(" Où sont-ils ? ", 10, 30, 80, 40)
$LauncherInput = GUICtrlCreateInput("Chemin des messages", 80, 30, 200, 18)
$LauncherSearch = GUICtrlCreateButton(" Chercher ", 285, 30, 65, 20)
$Btn_OK = GUICtrlCreateButton("OK", 230, 70, 55, 25)
$Btn_Annuler = GUICtrlCreateButton("Annuler", 300, 70, 55, 25)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $Btn_OK
Msgbox(0,"","Vous avez cliquer OK")
Exit
Case $msg = $Btn_Annuler
Exit
Case $msg = $LauncherSearch
$path = FileSelectFolder("Où se trouvent vos messages ? (Merci de sélectionnez le dossier) ", " ")
If Not @error Then
GUICtrlSetData($LauncherInput, $path)
GUICtrlSetTip($LauncherInput, GUICtrlRead($LauncherInput), "", 0, 1)
EndIf
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Maintenant, il va falloir lire les noms des sous-dossiers dans le dossier "Messages", je pensais à l'équivalent de dir en dos avec récupération dans un tableau, mais peut-être y a-t-il plus simple...
C'est tout à fait ça.
Et pour ce faire, nous allons utiliser la fonction : _FileListToArray
Pour pouvoir utiliser cette fonction, nous aurons besoin de dire à AutoIt ou elle ce trouve.
Cette fonction ce trouve dans l'UDF File.au3. Il nous faut donc rajouter dans notre code : #include <File.au3>
Pour les besoins de l'explication, nous allons aussi rajouter #include <Array.au3>, qui nous permettra d'utiliser la fonction _ArrayDisplay pour visualiser la liste des répertoires.
Ensuite, pour avoir la liste des sous répertoire d'un répertoire, nous utilisons donc :
Pour le filtre et le flag, cela est facile, puisque l'on veut tous les sous répertoire, et seulement les répertoires.
Donc $sFilter = "*" et $iFlag = 2.
Par contre pour le chemin ca ce complique, puisque le chemin est dans un contrôle. certes on peut utiliser la variable $path, mais qui nous dit que l'utilisateur n'à pas modifier le chemin à la main (Bouuh le vilain ...).
Il va nous falloir lire le contenu du contrôle.
Une commande toute simple, va nous permettre ceci :
GUICtrlRead
Cela va nous permettre de créer une ligne comme ceci :
Par contre si on oublie d'attribuer le résultat à une variable, cela ne nous servira à rien.
Attribuez donc le résultat de la commande à la variable $DirList par exemple, et pour finir affichons cette liste :
Voilà en regardant le résultat du tableau, vous imaginez peut être la suite ...