[R] Lire le nom d'un dossier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

[R] Lire le nom d'un dossier

#1

Message par Zelcorwin »

Je n'ai pas vu dans l'aide d'AutoIt, rubrique "Function reference/File, Directory and Disk Management" de fonction qui permette de récupérer le nom d'un dossier dans une variable.
J'ai bien trouvé la fonction DirGetSize pour la taillle, mais rien qui s'appelle DirGetName... :?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Lire le nom d'un dossier

#2

Message par Tlem »

Zelcorwin a écrit :Je n'ai pas vu dans l'aide d'AutoIt, rubrique "Function reference/File, Directory and Disk Management" de fonction qui permette de récupérer le nom d'un dossier dans une variable.
J'ai bien trouvé la fonction DirGetSize pour la taillle, mais rien qui s'appelle DirGetName... :?
Votre question et des plus étrange.
Vous voulez récupérer le nom d'un répertoire avec une fonction du genre : DirGetName, mais pour cela il faudrait lui indiquer le chemin, et donc ... le nom du répertoire. :wink:

Pour mettre le nom d'un dossier dans une variable, il vous suffit de faire :

Code : Tout sélectionner

 $MonRep = "C:\Windows\System32"
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#3

Message par Zelcorwin »

Merci de votre réponse qui met l'accent sur la vanité de ma question... :oops:
En fait, le mieux est que j'expose le problème auquel certainement je n'ai pas encore assez réfléchi :

J'utilise un client intranet (FirstClass) qui permet de sauvegarder les messages sous une forme un peu bizarre :
la fonction "Exporter documents" va créer un dossier par message (le nom du dossier est une concaténation du nom de l'expéditeur, du titre du message et de la date) et à l'intérieur du dossier sont créés 3 fichiers contenant la même chose, à savoir le corps du message, mais sous 3 formats différents, un en txt, un en rtf et un xml, avec toujours le même nom "content".
Je trouve ça très lourd et j'aimerais bien avoir directement un seul fichier par message (par exemple le fichier rtf), tous les messages dans un dossier de mon choix et le nom du fichier permettant d'identifier le message (style expéditeur-titre-date)...

J'ai essayé de résoudre ça dans FirstClass mais rien à faire (nous sommes plusieurs à trouver la procédure très lourde). Bien sûr je peux faire tout cela à la main, mais autant recopier les messages à la plume d'oie...

J'avais pensé au départ faire un batch avec des fonctions dos type xcopy et rename, mais pour cela il faut pouvoir lire le nom des dossiers, d'où ma question...
C'est alors que j'ai pensé à AutoIt , avec lequel je n'ai rien fait jusqu'ici, mais il me semble qu'il conviendrait bien à ma tâche.

En clair, j'ai pour l'instant tous mes messages dans un dossier "Messages" qui contient un sous-dossier par message contenant les trois fichiers. J'aimerais créer un programme qui me demanderait où sont mes messages (je saisirais le chemin de "Messages"), qui lirait le nom de tous les sous-dossiers, qui attriburait ce nom à un des fichiers (le rtf, par exemple), qui ferait un couper/coller de ces fichiers hors des sous-dossiers et à la racine de "Messages" et qui effacerait ensuite tous les sous-dossiers...

Est-ce possible ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#4

Message par Tlem »

Zelcorwin a écrit :J'ai essayé de résoudre ça dans FirstClass mais rien à faire (nous sommes plusieurs à trouver la procédure très lourde). Bien sûr je peux faire tout cela à la main, mais autant recopier les messages à la plume d'oie...
AutoIt est donc fait pour vous (C'est une plume d'oie automatique) :D
Zelcorwin a écrit :J'aimerais créer un programme qui me demanderait où sont mes messages (je saisirais le chemin de "Messages"), qui lirait le nom de tous les sous-dossiers, qui attriburait ce nom à un des fichiers (le rtf, par exemple), qui ferait un couper/coller de ces fichiers hors des sous-dossiers et à la racine de "Messages" et qui effacerait ensuite tous les sous-dossiers...

Est-ce possible ?
Oui.

Commencez par créer une interface simple qui vous demandera le chemin de "Message", et poster votre code (On va le construire au fur et à mesure).

Inspirez vous de ce code : http://www.autoitscript.fr/viewtopic.php?p=1515#1515

Si vous n'avez pas besoin d'options, ce n'est pas la peine de créer une GUI (L'interface graphique) mais utilisez seulement les boites de dialogue.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#5

Message par Zelcorwin »

Bon j'ai retouché le code de façon à faire apparaître éventuellement un chemin assez long, car si la longueur du champ visible est trop courte, on ne peut pas voir la droite du chemin même avec la touche Fin (je suppose que ça ne change rien pour la variable stockée, qui est, si j'ai bien compris, $path ?)

Code : Tout sélectionner

#include <GUIConstants.au3>
$SRoadLauncher = "Chemin des messages"
$LauncherGUI = GUICreate ( "Boîte à messages" , 600 , 100 )
$LauncherLabel = GUICtrlCreateLabel ( " Où sont-ils ? " , 10 , 30 , 80 , 40 )
$LauncherInput = GUICtrlCreateInput ( $SRoadLauncher , 80 , 30 , 400 , 18 , $ES_READONLY )
$LauncherSearch = GuICTRLCreateButton ( " Chercher " , 485 , 30 , 65 , 20 )
GUISetState ( @SW_SHOW )

while 1
$msg = GuiGetmsg ( )
Select
Case $msg = $LauncherSearch
$path = FileSelectFolder ( "Où se trouvent vos messages ? ( Merci de sélectionnez le dossier ) " , " " )
if Not @error Then GUICtrlSetData ( $LauncherInput , $path )
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
J'espère que je n'ai pas trébuché sur cette première marche... :roll:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#6

Message par Tlem »

Aller hop, je suis de retour.

Bien votre fenêtre est pas mal mais il faut rajouter un bouton OK et un Annuler qui seront traiter dans la commande select.

Pour créer un bouton :

Code : Tout sélectionner

$Btn_OK = GUICtrlCreateButton ( "OK" , 230 , 70 , 55 , 25 )
La variable $Btn_Ok contiendra le controlID du bouton, qui nous permettra de faire plein de chose avec.

ensuite, on peut comparer ce controlID dans la partie Select

Code : Tout sélectionner

 Case $msg = $Btn_OK
Msgbox ( 0 , "" , "Vous avez cliquer OK" )
Exit
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#7

Message par Zelcorwin »

Bon ça donne ça :

Code : Tout sélectionner

#include <GUIConstants.au3>
$SRoadLauncher = "Chemin des messages"
$LauncherGUI = GUICreate ( "Boîte à messages" , 600 , 100 )
$LauncherLabel = GUICtrlCreateLabel ( " Où sont-ils ? " , 10 , 30 , 80 , 40 )
$LauncherInput = GUICtrlCreateInput ( $SRoadLauncher , 80 , 30 , 400 , 18 , $ES_READONLY )
$LauncherSearch = GuICTRLCreateButton ( " Chercher " , 485 , 30 , 65 , 20 )
$Btn_OK = GUICtrlCreateButton ( "OK" , 230 , 70 , 55 , 25 )
$Btn_Annuler = GUICtrlCreateButton ( "Annuler" , 330 , 70 , 55 , 25 )
GUISetState ( @SW_SHOW )

while 1
$msg = GuiGetmsg ( )
Select
Case $msg = $LauncherSearch
$path = FileSelectFolder ( "Où se trouvent vos messages ? ( Merci de sélectionner le dossier ) " , " " )
if Not @error Then GUICtrlSetData ( $LauncherInput , $path )
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $Btn_OK
Msgbox ( 0 , "" , "Vous avez cliqué sur OK" )
Exit
Case $msg = $Btn_Annuler
Msgbox ( 0 , "" , "Vous avez cliqué sur Annuler" )
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...

Il faut que je quitte, merci encore et sans doute à demain !

PS : je ne sais pas comment inclure .au3 dans la partie code du message : pour afficher sous format code, je sélectionne la partie Code et je clique sur le bouton Code, mais ce n'est peut-être pas la bonne manip...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#8

Message par Tlem »

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 :

Code : Tout sélectionner

_FileListToArray ( $sPath [, $sFilter [, $iFlag]] )
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 :

Code : Tout sélectionner

_FileListToArray (GUICtrlRead($LauncherInput), "*", 2)
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 :

Code : Tout sélectionner

_ArrayDisplay($DirList)
Voilà en regardant le résultat du tableau, vous imaginez peut être la suite ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#9

Message par Zelcorwin »

ça y est, je reprends mon exercice !
J'ai eu quelques problèmes :
la syntaxe :

Code : Tout sélectionner

GUICtrlSetTip($LauncherInput, GUICtrlRead($LauncherInput), "", 0, 1)
n'est pas reconnue, il semble qu'il y ait trop de paramètres. En ne laissant que les deux premiers :

Code : Tout sélectionner

GUICtrlSetTip($LauncherInput, GUICtrlRead($LauncherInput))
le code est reconnu mais je ne vois rien de changé quand je pointe avec la souris... mais au fait sur quoi dois-je pointer pour que l'info-bulle apparaisse ? A quel moment doit-elle apparaître, la place de cette ligne de code signfie que cette info-bulle ne serait disponible qu'après avoir choisi le chemin...
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#10

Message par Zelcorwin »

Sinon j'ai inclus les librairies nécessaires à l'exécution des fonctions ajoutées, ce qui donne le code suivant :

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <File.au3>
#include <Array.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 cliqué 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))
$DirList=_FileListToArray (GUICtrlRead($LauncherInput), "*", 2)
_ArrayDisplay($DirList,"Tableau des messages")
EndIf
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Ca se présente bien (en interprété), j'ai bien l'affichage de tous mes messages, mais la première ligne du tableau affiché (indice 0) contient le nombre n de sous-dossiers, je n'ai pas trouvé de fonction type Dim pour dire si on commence à 0 ou à 1. Bon, c'est pas grave, le but étant de récupérer les n textes et de les attribuer au nom de l'un des fichiers de chaque sous-dossier. Et même finalement, c'est bien d'avoir n, on peut s'en servir pour boucler dessus...

Je commence à entrevoir le début d'une ébauche de solution !!!

Cordialement

PS : je n'arrive toujours pas à afficher les ".au3" dans les include, alors que je les ai collés dans la fenêtre, ils disparaissent dès la pré-visualisation de ce message...
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#11

Message par ani »

pour faire apparaitre les .au3 au niveau des includes faut désactiver le html .
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#12

Message par Zelcorwin »

Ok, merci pour le conseil... je ne résiste pas à l'envie d'essayer :

Code : Tout sélectionner

#include <Array.au3>
ça marche ! :)

Cordialement

Zelcorwin
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#13

Message par Tlem »

Zelcorwin a écrit :Ca se présente bien (en interprété)
Cool.
Zelcorwin a écrit :mais la première ligne du tableau affiché (indice 0) contient le nombre n de sous-dossiers, je n'ai pas trouvé de fonction type Dim pour dire si on commence à 0 ou à 1.
C'est fait exprès.
La plupart des commandes qui retourne un tableau mettent en indice 0 le nombre d'éléments du tableau.
ATTENTION : Ce n'est pas un cas général.
Parfois d'autres fonctions commence le tableau à l'indice 0 !!!
Zelcorwin a écrit :Et même finalement, c'est bien d'avoir n, on peut s'en servir pour boucler dessus...
Et bien oui, avec une bonne boucle FOR vous récupérerez chacun des éléments du tableau.
Un élément ce traduit comme ceci : $tableau[indice]
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Zelcorwin
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 19 nov. 2007 23:33
Status : Hors ligne

#14

Message par Zelcorwin »

Ça avance ! Le programme fonctionne impeccable ! Je reprends juste la zone que j'ai retouchée depuis la dernière fois :

Code : Tout sélectionner

While 1 
   $msg = GUIGetMsg()           ; intercepte l'action de l'utilisateur
   Select                       ; choix multiple
      Case $msg = $Btn_OK       ; si je clique sur "OK"
        $rep = Msgbox(20,"Extraction des fichiers messages","Etes-vous sûr ?")  ; crée une boîte d'avertissement oui/non
        If $rep = 6 Then ; si oui
            For $i=1 to $DirList[0]
            FileMove(GUICtrlRead($LauncherInput)&"\"&$DirList[$i]&"\"&"content.rtf", _
            GUICtrlRead($LauncherInput)&"\"&$DirList[$i]&".rtf")
            ; je déplace le message i à la racine de Messages et j'en profite pour lui changer son nom
            DirRemove(GUICtrlRead($LauncherInput)&"\"&$DirList[$i],1)
            ; je supprime le dossier i correspondant
            Next
        Else 
            Exit
        EndIf
         Exit    
      Case $msg = $Btn_Annuler  ; si je clique sur "Annuler"
         Exit 
          
      Case $msg = $LauncherSearch ; si je clique sur "Chercher"
         $path = FileSelectFolder("Où se trouvent vos messages ? (Merci de sélectionnez le dossier) ", " ") 
         If Not @error Then 
            GUICtrlSetData($LauncherInput, $path) ; met dans $LauncheInput le bon chemin du dossier Messages
            GUICtrlSetTip($LauncherInput, GUICtrlRead($LauncherInput)) ; ?
            $DirList=_FileListToArray (GUICtrlRead($LauncherInput), "*", 2) ; met dans un tableau les noms des sous-dossiers
            ;_ArrayDisplay($DirList,"Tableau des messages")     ; affiche les noms de ces sous-dossiers
        EndIf 
        
      Case $msg = $GUI_EVENT_CLOSE ; si je ferme la fenêtre
         Exit 
   EndSelect 
WEnd
Un grand merci à Tlem dont l'appui a été plus que décisif ! J'ai été surpris par l'efficacité d'AutoIt et la facilité de la mise en oeuvre de l'interface utilisateur ! :D

PS : je ne sais pas s'il est utilisable tel que (une fois compilé) :
-> car il présente des failles : on peut par exemple dire OK alors qu'on n'a pas choisi de chemin, où mettre un faux chemin : la ligne DirRemove va faire alors des dégâts ...
-> j'aimerais bien laisser le choix à l'utilisateur du type de fichier message à sauvegarder (txt, rtf ou xml) mais je ne sais pas faire des boutons radios dans la boîte de dialogue...

Salutations

Zelcorwin
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#15

Message par Tlem »

Zelcorwin a écrit :je ne sais pas s'il est utilisable tel que (une fois compilé) :
-> car il présente des failles : on peut par exemple dire OK alors qu'on n'a pas choisi de chemin, où mettre un faux chemin : la ligne DirRemove va faire alors des dégâts ...
Pour palier à ce problème, nous allons faire simple.
Tout d'abord, pour rendre le code pas trop compliquer, nous allons mettre $LauncherInput en lecture seule, comme cela l'utilisateur sera obliger de cliquer 'Chercher'.

Alors, pour mettre $LauncherInput en lecture seul, corriger la ligne comme ceci :

Code : Tout sélectionner

$LauncherInput = GUICtrlCreateInput("Chemin des messages", 80, 30, 200, 18, $ES_READONLY)
Ensuite, puisque nous ne voulons pas que le bouton OK soit accessible avant d'avoir contrôler la validité du répertoire, rendons le inactif à la création :

Code : Tout sélectionner

$Btn_OK = GUICtrlCreateButton("OK", 230, 70, 55, 25, $WS_DISABLED)
 
Bien, il nous reste plus qu'a contrôler la validité du répertoire pour rendre le bouton actif :

Code : Tout sélectionner

    Case $msg = $LauncherSearch 
        $path = FileSelectFolder("Où se trouvent vos messages ? (Merci de sélectionnez le dossier) ", " ")
        If Not @error And FileExists($Path) Then
            GUICtrlSetState($Btn_OK, $GUI_ENABLE)  ; Active le bouton Ok.
            GUICtrlSetData($LauncherInput, $path)
            GUICtrlSetTip($LauncherInput, GUICtrlRead($LauncherInput))
        EndIf
 

Zelcorwin a écrit :j'aimerais bien laisser le choix à l'utilisateur du type de fichier message à sauvegarder (txt, rtf ou xml) mais je ne sais pas faire des boutons radios dans la boîte de dialogue...
A rajouter dans la partie GUI, avant le GUISetState(@SW_SHOW) :

Code : Tout sélectionner

$TXT = GUICtrlCreateRadio("TXT", 20, 70, 49, 17)
GUICtrlSetState(-1, $GUI_CHECKED) ; Pour choisir TXT par défaut.
$RTF = GUICtrlCreateRadio("RTF", 80, 70, 49, 17)
$XML = GUICtrlCreateRadio("XML", 140, 70, 49, 17)
 
Pour tester si un bouton radio est actif ou non, il vous faudra utiliser ceci (A adapter à votre code bien sur) :

Code : Tout sélectionner

If BitAND(GUICtrlRead($TXT), $GUI_CHECKED) = $GUI_CHECKED Then MsgBox(0,"Info","Vous avez choisit TXT")
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre