Astuces de recherche...
Home
- Accueil & nouveautés
- Les newsgroups VB
- Téléchargements
- L'équipe
- Nous contacter
- Liens
Rubriques
- Toutes les questions
- Affichage & graphismes
- Algorithmique
- API
- Base de registre
- Bases de données
- Contrôles
- Date & heure
- Déploiement
- Divers
- Erreurs & problèmes
- Fichiers & dossiers
- Généralités
- Impression
- Internet & mails
- Math
- Multimédia
- Réseaux
- Structures de données
- Texte & strings
- VB .Net
- VB Script
- VBA
- Windows

Question 120

Comment récupérer le numéro de série d'un disque dur ?

Il faut employer l'API GetVolumeInformation qui permet de retourner, entre autres, le numéro de série d'un disque dur :

Option Explicit

Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" ( _
    ByVal lpRootPathName As String, _
    ByVal lpVolumeNameBuffer As String, _
    ByVal nVolumeNameSize As Long, _
    lpVolumeSerialNumber As Long, _
    lpMaximumComponentLength As Long, _
    lpFileSystemFlags As Long, _
    ByVal lpFileSystemNameBuffer As String, _
    ByVal nFileSystemNameSize As Long _
) As Long

Private Const MAX_PATH = 260

Private Sub Form_load()

    Dim strRacine As String, strVolumeName As String, strFileSystemName As String
    Dim lSerialNumber As Long, lpMaximumComponentLength As Long, lFileSystemFlag As Long

    ' Initialisations
    strRacine = "C:\"
    strVolumeName = String$(MAX_PATH, Chr$(0))
    strFileSystemName = String$(MAX_PATH, Chr$(0))

    ' Appel de l'API
    If GetVolumeInformation(strRacine, strVolumeName, MAX_PATH, lSerialNumber, lpMaximumComponentLength, lFileSystemFlag, strFileSystemName, MAX_PATH) Then
        strVolumeName = Left$(strVolumeName, InStr(strVolumeName, Chr$(0)) - 1)
        strFileSystemName = Left$(strFileSystemName, InStr(strFileSystemName, Chr$(0)) - 1)

        MsgBox "Chemin du volume : " & strRacine
        MsgBox "Nom du volume : " & strVolumeName
        MsgBox "Numéro de série : " & lSerialNumber
        MsgBox "Longueur maximale d'un composant d'un nom de fichier : " & lpMaximumComponentLength
        MsgBox "System flags : " & lFileSystemFlag
        MsgBox "Nom du système de fichier : " & strFileSystemName
    Else
        MsgBox "Une erreur s'est produite !", vbExclamation
    End If

End Sub

Date de publication : 13 février 2003
Dernière modification : 13 février 2003
Rubriques : Fichiers & dossiers
Mots-clés : numéro, série, serial, number, disque dur, hard drive