VB Code:
Public Declare Function GetVolumeSerialNumber Lib "kernel32.dll" 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 VolumeSerialNumber(ByVal RootPath As String) As String Dim VolLabel As String Dim VolSize As Long Dim Serial As Long Dim MaxLen As Long Dim Flags As Long Dim Name As String Dim NameSize As Long Dim s As String If GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, Flags, Name, NameSize) Then 'Create an 8 character string s = Format(Hex(Serial), "00000000") 'Adds the '-' between the first 4 characters and the last 4 characters VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4) Else 'If the call to API function fails the function returns a zero serial number VolumeSerialNumber = "0000-0000" End If End Function ' Usage : GotNum = VolumeSerialNumber("C:\") ' OR ########################## Public Function SerialNumber() As Long Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim Drive As Object Set Drive = fso.GetDrive(fso.GetDriveName (fso.GetAbsolutePathName(App.Path))) SerialNumber = Abs(Drive.SerialNumber) Set fso = Nothing Set Drive = Nothing End Function


Reply With Quote