Lire le numero de série d'un disque

Soyez le premier à donner votre avis sur cette source.

Snippet vu 40 582 fois - Téléchargée 82 fois

Contenu du snippet

Créer un nouveau projet.
Ajouter sur la feuille:
- un Bouton de commande (pour quitter)
- un Label
- une TextBox sous le label
Ajouter le code ci-dessous dans le code de "Form1".

Source / Exemple :


Private Declare Function GetVolumeInformation Lib "kernel32.dll" _
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
'------------------------------------------------
Function NoSerieDisque(strDrive As String) As Long
Dim SerialNum As Long
Dim Res As Long
Dim Trucnull As Long
Dim Strnul As String
Res = GetVolumeInformation(strDrive, Strnul, _
Trucnull, SerialNum, Trucnull, Trucnull, Strnul, Trucnull)
Me.Caption = strDrive
NoSerieDisque = SerialNum
End Function
'**********************
Private Sub Command1_Click()
    End
End Sub
'**********************
Private Sub Form_Load()
    Label1.Caption = "N° de série du disque dur"
    Text1.Text = NoSerieDisque("C:\")
End Sub

Conclusion :


Dans cet exemple, "C:\" est en dur, mais on peut passer n'importe quelle designation d'unité logique.

A voir également

Ajouter un commentaire

Commentaires

relax62
Messages postés
83
Date d'inscription
vendredi 2 avril 2004
Statut
Membre
Dernière intervention
8 juillet 2012
1 -
Bonjour,

Désolé pour le déterrage de post !
Il y a quelques adaptations à effectuer pour le faire tourner en .net (au niveau de la déclaration).
Voici ce que j'ai du mettre pour compiler :

Private Declare Auto Function GetVolumeInformation Lib "kernel32.dll" ( _
ByVal RootPathName As String, _
ByVal VolumeNameBuffer As System.Text.StringBuilder, _
ByVal VolumeNameSize As UInt32, _
ByRef VolumeSerialNumber As UInt32, _
ByRef MaximumComponentLength As UInt32, _
ByRef FileSystemFlags As UInt32, _
ByVal FileSystemNameBuffer As System.Text.StringBuilder, _
ByVal FileSystemNameSize As UInt32) As UInt32

En espérant que ça puisse servir...
Gnain
Messages postés
37
Date d'inscription
vendredi 9 juin 2006
Statut
Membre
Dernière intervention
29 avril 2011
-
salut thony64270, malheureusement je ne peu t'aider car je ne suis pas encore passé a vista. Par contre si tu veut récupérer ce numéro pour un programme de sécurité, il est beaucoup plus façile de récupérer le numéros de série de windows au lieu du disque dur. Un code sources pour le numéros de série de windows est bon pour toute les machines peu importe la version.
thony64270
Messages postés
13
Date d'inscription
samedi 24 juin 2006
Statut
Membre
Dernière intervention
9 juillet 2009
-
Gnain ton code ne marche pas sur toute les machine.
J'ai une machine vista qui renvoie rien.
bmwzezette
Messages postés
2
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
18 février 2008
-
TRES TRES BIEN TON CODE GNAIN
questions:
Pour moi qui debute, comment faire POUR AFFICHER dans des MsgBox ou dans une fenetre texte le bDriveType, le nb de Cilinders, de heads,de SecPerTrack,et de BytesperSector ? merci par avance pour ta reponse et pour des exemples
playmore75
Messages postés
3
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
16 décembre 2007
-
thanks gain

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.