~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.
~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction GetLogicalDrives
Declare Function GetLogicalDrives Lib "kernel32" () As Long
Versions : . Windows 95/98 : Oui . Windows NT : A partir de 3.1 . Windows 2000/XP : OuiDescription : Cette fonction renvoie l'ensemble des lecteurs actuellement attribués par le système.
La fonction retourne un entier long qu'il faut décomposer de manière binaire pour connaître les lecteurs. Le premier bit indique si le lecteur A existe, le bit 2 indique si le lecteur B existe, le 3ième est pour le C, et ainsi de suite.
A utiliser de cette manière, lgRet étant la variable contenant le retour de la fonction:
Si lgRet And 1 <> 0 Alors A: existe
Si lgRet And 2 <> 0 Alors B: existe
Si lgRet And 4 <> 0 Alors C: existe
Si lgRet And 8 <> 0 Alors D: existe
Si lgRet And 16 <> 0 Alors E: existe
(on continue comme ça avec 32, 64, 128, 512, 1024,...).
Exemple d'utilisation :
' Exemple de François GARAULT (f.garault@nea-be.com)
' A placer sur une feuille.
Private Declare Function GetLogicalDriveStrings Lib "kernel32" _
Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias _
"GetDriveTypeA" (ByVal nDrive As String) As Long
Dim lgCptCD As Integer
Dim tabCD(20) As String
Private Sub Form_Load()
Dim strSave As String
Dim lgFor As Long, lgRet As Long
Me.AutoRedraw = True
lgCptCD = 0
strSave = String$(255, Chr$(0))
lgRet = GetLogicalDriveStrings(255, strSave)
Do Until Left$(strSave, 1) = Chr$(0)
If GetDriveType(Left$(strSave, InStr(1, strSave, Chr$(0)) - 1)) = 5 Then
lgCptCD = lgCptCD + 1
tabCD(lgCptCD) = Left$(strSave, 3)
End If
strSave = Right$(strSave, Len(strSave) - 4)
Loop
Me.Print "Bilan de lecteurs de Cd-Rom :"
For lgFor = 1 To lgCptCD
Me.Print "Lecteur : " & lgFor & " = " & tabCD(lgFor)
Next
End Sub
Retour à la liste des API |