[..] Lister les labels des supports amovibles

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

[..] Lister les labels des supports amovibles

#1

Message par corrs78 »

Je souhaite lister les labels des clés ou disques amovibles connectés, exemple:
LEXAR128, AMOVIBLE200, DISQUE_EXT...
Le but est de pouvoir lancer un programme sur un chemin(lettre de lecteur) variable.
Seule problème je n'arrive pas à lister les labels.

Code : Tout sélectionner

#include <GUIConstants.au3>

;$variable
Global $lecteur
Global $label


list_lecteur()
ConsoleWrite("var=" & $lecteur & @CRLF)
ConsoleWrite("var=" & $label & @CRLF)


; - - - - - - - - - - Liste des lecteurs
Func list_lecteur()
$var = DriveGetDrive( "REMOVABLE" );"ALL", "CDROM", "REMOVABLE", "FIXED", "NETWORK", "RAMDISK", or "UNKNOWN"
    If NOT @error Then
        For $i = 1 to $var[0]
            $lecteur = $var[$i] &"\" &$lecteur

        Next
    Else
        $label_cle = GUICtrlCreateLabel("PAS DE CLE USB DETECTEE",130,145)
    EndIf
    
    $variable = DriveGetLabel( $lecteur )
    
     For $i = 1 to $variable[0]
            $label = $variable[$i] &"\" &$label

        Next
EndFunc


exit
Merci de votre aide.
Modifié en dernier par Tlem le jeu. 24 juil. 2008 08:44, modifié 1 fois.
Raison : Ajout de la balise [..] dans le titre
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: Lister les labels des supports amovibles connectés

#2

Message par Yogui »

► Afficher le texte

a tester avec une clefs usb
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Lister les labels des supports amovibles connectés

#3

Message par Tlem »

http://www.autoitscript.fr/forum/viewto ... ?f=3&t=595
merci

En gardant le mode Fonction, voici un code un peut plus complet :

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <array.au3>

$List = list_lecteur()
If Not @error Then
    MsgBox(64,"Info", "Il y a " & $List[0] & " lecteur(s) amovible(s)")
    _ArrayDisplay($List, "Label lecteur(s)")
Else
    MsgBox(16,"Erreur", "Pas de lecteur(s) amovible(s) présent(s).")
EndIf

; - - - - - - - - - - Liste des lecteurs
Func list_lecteur()
    Local $lecteur
    $var = DriveGetDrive("REMOVABLE") ;"ALL"
    If NOT @error Then
        For $i = 1 to $var[0]
            If DriveStatus ($var[$i] & "\") = "READY" Then
            $lecteur &= DriveGetLabel($var[$i] & "\") & "|"
            EndIf
        Next
    Else
        $lecteur = ""
    EndIf
    
    If Not $lecteur = "" Then
        $aLecteur = StringSplit(StringTrimRight($lecteur, 1), "|")
        Return SetError(0, 0, $alecteur)
    Else
        Return SetError(1, 0, $lecteur)
    EndIf
EndFunc


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é".
Avatar du membre
Jerem21
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 09 juil. 2008 19:33
Status : Hors ligne

Re: [..] Lister les labels des supports amovibles

#4

Message par Jerem21 »

Bonjour a tous

Dans le dernier script, je ne vois pas bien a quoi sert cette partie de script :

Code : Tout sélectionner

    If Not $lecteur = "" Then
        $aLecteur = StringSplit(StringTrimRight($lecteur, 1), "|")
        Return SetError(0, 0, $alecteur)
    Else
        Return SetError(1, 0, $lecteur)
    EndIf
Merci
L'union fait la Force...

(--ENOJOY LINUX--)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lister les labels des supports amovibles

#5

Message par Tlem »

Et bien tout simplement, si les lecteurs n'ont pas de label, alors il n'y à rien à traiter avec StringSplit et donc on renvoi une erreur. ;)
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