Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ 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 ~
 Rechercher un site :
  

~ 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 : Oui

Description :
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

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr