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
Function GetHardDriveSerial() As Long
Dim serial As Long
Dim result As Long
Dim drive As String
' Establecer la letra de la unidad del disco duro
drive = "C:\"
' Llamar a la función del API para obtener el número de serie del disco duro
result = GetVolumeInformation(drive, vbNullString, 0, serial, 0, 0, vbNullString, 0)
' Devolver el número de serie del disco duro
GetHardDriveSerial = serial
End Function