Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4/32, VB5, VB6
Expertise: Intermediate
May 31, 2003



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Get the Drive Serial Number

You can get the serial number of your hard drive, floppy disk, or CD-ROM easily without any additional ActiveX component. First, start a VB project, add a standard module, and place a Command Button control on the form:

'-- Module code
Private Declare Function GetVolumeInformation _
	Lib "kernel32" Alias "GetVolumeInformationA" _
	(ByVal lpRootPathName As String, _
	ByVal pVolumeNameBuffer 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 GetSerialNumber( _
	ByVal sDrive As String) As Long

	If Len(sDrive) Then
		If InStr(sDrive, "\\") = 1 Then
			' Make sure we end in backslash for UNC
			If Right$(sDrive, 1) <> "\" Then
				sDrive = sDrive & "\"
			End If
			' If not UNC, take first letter as drive
			sDrive = Left$(sDrive, 1) & ":\"
		End If
		' Else just use current drive
		sDrive = vbNullString
	End If
	' Grab S/N -- Most params can be NULL
	Call GetVolumeInformation( _
		sDrive, vbNullString, 0, GetSerialNumber, _
		ByVal 0&, ByVal 0&, vbNullString, 0)
End Function

'-- Form code
Private Sub Command1_Click()
	Dim Drive As String
	Drive = InputBox("Enter drive for checking SN")
	MsgBox Hex$(GetSerialNumber(Drive))
End Sub
Predrag Dervisevic
Thanks for your registration, follow us on our social networks to keep up-to-date