Prueba esto:
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
Public Function NumSerieDisco(unidad As String) As Long
Dim numser As Long, cad1 As String, cad2 As String
cad1 = String(255, vbNullChar)
cad2 = String(255, vbNullChar)
GetVolumeInformation unidad, cad1, Len(cad1), numser, 0, 0, cad2, Len(cad2)
NumSerieDisco = numser
End Function
Private Sub Form_Load()
MsgBox NumSerieDisco("C:"), vbInformation, "Volumen Disco"
' En Hexadecimal
MsgBox Hex$(NumSerieDisco("C:")), vbInformation, "Volumen Disco"
End Sub
El número se devuelve como Long, pero si quieres lo puedes pasar a hexadecimal (así es como lo da Windows).
Posted
vie, ene 1 1999 22:40
by
Maverick