N° de série d'un disque

Résolu
cs_AVI17 Messages postés 47 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 26 janvier 2010 - 10 janv. 2006 à 17:29
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 12 janv. 2006 à 12:23
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

fohaf Messages postés 60 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 6 septembre 2012 2
10 janv. 2006 à 17:43
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 janv. 2006 à 22:55
salut,

API GetVolumeInformation

PCPT [AFCK]
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 janv. 2006 à 01:46
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 janv. 2006 à 17:19
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AVI17 Messages postés 47 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 26 janvier 2010
12 janv. 2006 à 09:11
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 janv. 2006 à 12:23
bien le principe est simple, tu valides normalement la ou les réponses te satisfaisant......

@+
0
Rejoignez-nous