N° de série d'un disque

[Résolu]
Signaler
Messages postés
47
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
26 janvier 2010
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Comment récupérer en Vb le n° de série d'un disque donné comme il appararaît dans Outils Système/Informations Système/Composants/Stockage/Lecteurs

Merci d'avance de votre aide

6 réponses

Messages postés
60
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2012
2
Ajoute la référence Microsoft Scripting Runtime puis:

Dim fso As FileSystemObject
Dim lect As Drive
Set fso = New FileSystemObject
For Each lect In fso.Drives
If lect.IsReady Then
MsgBox Hex(lect.SerialNumber)
End If
Next
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

API GetVolumeInformation

PCPT [AFCK]
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Ce que tu vois dans Informations System n'est pas le nro de série des disques mais le nro attribué lors du formatage d'une partition.
Comme te le dit pcpt, utilise GetVolumeInformation qui sera bien plus rapide et consommera nettement moins de ressources que cette calamité de FSO.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
les MP ne sont pas faits pour donner suite au forum....

surtout si tu valides déjà ici les autres réponses, c'est que le problème est résolu, non?

bref.



à ta demande, en VB6




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 Sub Form_Load()

'URL: http://www.allapi.net/

Dim Serial As Long, VName As String, FSName As String



'Create buffers

VName = String$(255, Chr$(0))

FSName = String$(255, Chr$(0))



'Get the volume information

GetVolumeInformation "C:", VName, 255, Serial, 0, 0, FSName, 255



'Strip the extra chr$(0)'s

VName = Left$(VName, InStr (1, VName, Chr$(0)) - 1)

FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)



MsgBox "Nom de C:\ : " & VName & vbCrLf & "Partition : " & FSName & vbCrLf & _

"N° série : " & Trim(Str$(Serial))



Unload Me

End Sub




<small> Coloration
syntaxique automatique [AFCK]</small>


PCPT [AFCK]
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Messages postés
47
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
26 janvier 2010

Merci de ta réponse, et excuse moi, il n'y a pas longtemps que je viens sur le forum et je ne connais les us et coutumes de celui-ci
Avi17
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
bien le principe est simple, tu valides normalement la ou les réponses te satisfaisant......

@+