Page 1 sur 1

[..] Lister les labels des supports amovibles

Posté : mer. 23 juil. 2008 15:50
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.

Re: Lister les labels des supports amovibles connectés

Posté : mer. 23 juil. 2008 19:17
par Yogui
► Afficher le texte

a tester avec une clefs usb

Re: Lister les labels des supports amovibles connectés

Posté : jeu. 24 juil. 2008 08:13
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

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

Posté : sam. 30 mai 2009 12:34
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

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

Posté : dim. 31 mai 2009 00:19
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. ;)