Proprietes des lecteurs

Description

Un module (basLecteurs) qui permet de recuperer les differentes information concernant
vos disques.
(Type, Volume total, Espace libre, Lettre, Nom reseau, .....).
Il y a un petit exemple fournit avec le zip.
A+

Source / Exemple :


'|-----------------------------------------------------------
'|  Module : basLecteurs
'|-----------------------------------------------------------
'| Description : Propriété des différents lecteurs
'| Ce module comprend 2 fonctions :
'|
'|    1>    Info_Lecteur(Lecteur as DRIVE, Info as InfoDrive) as String
'|    2>    Etat_Lecteur(Lecteur As Drive) As EtatLecteur
'|
'|---------------------------------------------------------------------------
'|   ATTENTION : Ce module necessite une DLL Système : SCRRUN.DLL
'|                        Pour cela il faut charger une référence Microsoft
'|                        Menus : Projet -> Références
'|                                        Cocher Microsoft Scripting Runtime
'|---------------------------------------------------------------------------
'| 1> fonction  Info_Lecteur(Lecteur As Drive, Info As InfoDrive) As String
'|
'|  la procedure appelante doit fournir a la fonction un
'|  objet "Drive"
'|
'|  exemple :
'|
'|    Dim fso               As New FileSystemObject
'|    Dim ToutLecteurs      As Drives
'|    Dim Lecteur           As Drive
'|    Dim strResult         As String
'|
'|    Set ToutLecteurs = fso.Drives
'|    For Each Lecteur In ToutLecteurs
'|          strResult = Info_Lecteur(Lecteur, "Info a renvoyer")
'|    Next
'|
'| Infos succeptibles d'etre renvoyees
'|-------------------------------------
'| Le parametre Info est défini dans une énumération (InfoDrive). la valeur
'| de ce parametre ainsi que les éléments retournés (de type String)
'| est :
'|
'|  Type_Lecteur        -> CD-Rom
'|                      -> Fixe
'|                      -> Disque RAM
'|                      -> Reseau
'|                      -> Amovible
'|                      -> Inconnu
'|
'|  Nom_Partage         -> Accessible uniquement en cas de
'|                         disque reseau
'|
'|  Volume_Libre        -> Accessibles uniquement si le disque
'|  Volume_Total           concerné est "Pret" (dans le cas de
'|                         disque amovible)
'|
'|  Lettre_Disque       -> La lettre définissant le lecteur
'|
'|  Num_Serie           -> Numérot de série
'|                         Accessibles uniquement si le disque
'|                         concerné est "Pret" (dans le cas de
'|                         disque amovible)
'|
'|  System_Disque       -> Type de formatage (FAT, NTFS, ....)
'|                         Accessibles uniquement si le disque
'|                         concerné est "Pret" (dans le cas de
'|                         disque amovible)
'|
'|-----------------------------------------------------------
'| 2> Etat_Lecteur(Lecteur As Drive) As EtatLecteur
'|
'|  la procedure appelante doit fournir a la fonction un
'|  objet "Drive"
'|
'|  mise en oeuvre -> Voir fonction précédente
'|
'| Infos succeptibles d'etre renvoyees
'|-------------------------------------
'| Elles sont définie dans une énumération (EtatLecteur)
'| les valeurs de retour sont :
'|
'|      Pret        -> Lecteur actif contenant un média
'|      Pas_Pret    -> Lecteur soit inactif soit un disque
'|                     amovible ne contenant pas de média.
'|
'|-----------------------------------------------------------
'| Module(s) appeles :  sans objet
'|-----------------------------------------------------------
'| Version    24/10/2002     Jim      Origine
'|
'|#----------------------------------------------------------

Option Explicit

'---------------------------------------------
'Nature des infos succeptibles d'etre renvoyees par
'la fonction Info_Lecteur
'---------------------------------------------
Public Enum InfoDrive
    Type_Lecteur
    Nom_Partage
    Volume_Libre
    Volume_Total
    Lettre_Disque
    Num_Serie
    System_Disque
End Enum
'--------------------------------------------
'valeurs retournees par la fonction EtatLecteur
'--------------------------------------------
Public Enum EtatLecteur
    Pret
    Pas_Pret
End Enum
'--------------------------------------------

Public Function Info_Lecteur(Lecteur As Drive, Info As InfoDrive) As String

    Select Case Info

        Case Lettre_Disque
            '--------------------------------------
            'Lettre du volume
            '--------------------------------------
            Info_Lecteur = Lecteur.DriveLetter
            
        Case Type_Lecteur
            '--------------------------------------
            'Type du lecteur
            '--------------------------------------
            Select Case Lecteur.DriveType
                Case CDRom
                    Info_Lecteur = "CD-Rom"
                Case Fixed
                    Info_Lecteur = "Fixe"
                Case RamDisk
                    Info_Lecteur = "Disque RAM"
                Case Remote
                    Info_Lecteur = "Reseau"
                Case Removable
                    Info_Lecteur = "Amovible"
                Case UnknownType
                    Info_Lecteur = "Inconnu"
            End Select
            
        Case Lettre_Disque
            '--------------------------------------
            'Lettre du volume
            '--------------------------------------
            Info_Lecteur = Lecteur.DriveLetter
            
        Case Nom_Partage
            '--------------------------------------
            'En cas de disque réseau
            ' -> Nom du partage
            '--------------------------------------
            If Lecteur.DriveType = Remote Then 'cest un lecteur réseau
                Info_Lecteur = Lecteur.ShareName
            Else
                Info_Lecteur = ""
            End If
            
        Case Volume_Libre
            '--------------------------------------
            'Espace Disponible
            '--------------------------------------
            If Etat_Lecteur(Lecteur) = Pret Then
                Info_Lecteur = Lecteur.FreeSpace
            Else
                Info_Lecteur = ""
            End If
            
        Case Volume_Total
            '--------------------------------------
            'Espace Total
            '--------------------------------------
            If Etat_Lecteur(Lecteur) = Pret Then
                Info_Lecteur = Lecteur.TotalSize
            Else
                Info_Lecteur = ""
            End If

        Case Nom_Partage
            '--------------------------------------
            'Nom du Volume
            '--------------------------------------
            If Etat_Lecteur(Lecteur) = Pret Then
                Info_Lecteur = Lecteur.VolumeName
            Else
                Info_Lecteur = ""
            End If
            
        Case Num_Serie
            '--------------------------------------
            'N° de serie
            '--------------------------------------
            If Etat_Lecteur(Lecteur) = Pret Then
                Info_Lecteur = Lecteur.SerialNumber
            Else
                Info_Lecteur = ""
            End If
            
        Case System_Disque
            '--------------------------------------
            'FileSystem
            '--------------------------------------
            If Etat_Lecteur(Lecteur) = Pret Then
                Info_Lecteur = Lecteur.FileSystem
            Else
                Info_Lecteur = ""
            End If
        
    End Select

End Function

Public Function Etat_Lecteur(Lecteur As Drive) As EtatLecteur

    If Lecteur.IsReady Then
        Etat_Lecteur = Pret
    Else
        Etat_Lecteur = Pas_Pret
    End If

End Function

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.