Recherche
Recherche
Les mémos
Je débute...
Visites

 998947 visiteurs

 2 visiteurs en ligne

Détecter la présence d'une clé USB à l'aide du FileSystemObject

Comme on le sait, lorsque l'on branche une clé USB dans un port d'un PC, on ne sait d'avance quelle lettre sera attribuée à cette clé. Car cela dépend du port, voir du PC sur lequel on la branche.

Une manière efficace pour gérer cela est de nommer les clés USB. Pour cela, on la branche dans n'importe quel port et lorsque Windows l'aura détectée et éventuellement déclarée au système, un clic droit sur son icône permet d'afficher ses propriétés. Là, on trouvera un champ spécialement prévu à recevoir un nom de volume. Préférez un nom "parlant" sans espace (comme "Gestion_Cave") pour la facilité.

On détectera donc en fait un nom de volume duquel on récupèrera la lettre attribuée par Windows.

Le code ci-dessous, que l'on placera dans un module, permet de faire cela :

Function GetUSB(sName As String) As String
    '/
    '/ Nécessite la référence "Microsoft Scripting Runtime"
    '/
    Dim FSO As FileSystemObject
    Dim objDrive As Drive
    Set FSO = CreateObject("Scripting.FileSystemObject")
    GetUSB = ""
    'on boucle
    For Each objDrive In FSO.Drives
        If objDrive.DriveType = 1 Then
            If objDrive.IsReady Then
                If objDrive.VolumeName = sName Then
                    GetUSB = objDrive.DriveLetter & ":/"
                End If
            End If
        End If
    Next
End Function

Dans le code Access, l'utilisation sera alors on ne peut plus simple...

Dim V as string
V = GetUSB("Gestion_Cave")

V contiendra ainsi la lettre du volume attribué à ladite clé USB, sinon rien.


Catégorie : Les mémos - Modules
Page lue 1264 fois