Whenever a disk is formatted, the
operating system writes a serial number
onto it. This number is not
guaranteed to be unique, but as it is a
32 bit integer it is unlikely to find a
duplicate! The number is often used
as part of a copy protection
system. This tip shows you how to
retrieve the number.
Declarations
Copy this code into the
declarations section of the project.
Private Declare Function GetVolumeInformation Lib _
"kernel32.dll" Alias
"GetVolumeInformationA" (ByVal _
lpRootPathName As String, ByVal lpVolumeNameBuffer As _
String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long
Code
Function GetSerialNumber(strDrive As String) As Long
Dim SerialNum As Long
Dim Res As Long
Dim Temp1 As String
Dim Temp2 As String
Temp1 = String$(255, Chr$(0))
Temp2 = String$(255, Chr$(0))
Res = GetVolumeInformation(strDrive,
Temp1, _
Len(Temp1), SerialNum, 0, 0, Temp2,
Len(Temp2))
GetSerialNumber = SerialNum
End Function
Use
An
example of using the above function:
Call MsgBox GetSerialNumber("C:\")
This
will bring up a message box with the
serial number of the C drive.
|