It is very URGENT.
How to get the USB serial no using VB6.
How to get the USB serial no using VB6.
Function GetUSBSerialNo(ByVal DriveLetter As String)
Dim PnPID As String
PnPID = USBSerialNo(DriveLetter)
If Not Trim(PnPID) = "" Then
GetUSBSerialNo = formatSerialNo(PnPID)
Else
GetUSBSerialNo = ""
End If
End Function
Function USBSerialNo(ByVal DriveLetter As String)
Dim objFSO
Dim objFolder
Dim Directory
Const OverwriteExisting = True
Dim SerialNo As String
Dim ComputerName
ComputerName = "."
Dim wmiServices, wmiDiskDrives, wmiDiskDrive, query, wmiDiskPartitions, wmiDiskPartition, wmiLogicalDisks, wmiLogicalDisk
Set wmiServices = GetObject( _
"winmgmts:{impersonationLevel=Impersonate}!//" _
& ComputerName)
Set wmiDiskDrives = wmiServices.ExecQuery("SELECT Caption, DeviceID,PNPDeviceID FROM Win32_DiskDrive")
For Each wmiDiskDrive In wmiDiskDrives
SerialNo = wmiDiskDrive.PNPDeviceID '1
query = "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" _
& wmiDiskDrive.deviceid & "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition"
Set wmiDiskPartitions = wmiServices.ExecQuery(query)
For Each wmiDiskPartition In wmiDiskPartitions
Set wmiLogicalDisks = wmiServices.ExecQuery _
("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" _
& wmiDiskPartition.deviceid & "'} WHERE AssocClass = Win32_LogicalDiskToPartition")
For Each wmiLogicalDisk In wmiLogicalDisks
If (wmiLogicalDisk.deviceid = DriveLetter) And (wmiLogicalDisk.DriveType = 2) Then '2
USBSerialNo = SerialNo
Exit Function
End If
Next
Next
Next
End Function
Function formatSerialNo(ByVal PnPID As String)
Dim arrSerialNo
Dim arrSerialNo1
arrSerialNo = Split(PnPID, "\")
Dim i
arrSerialNo1 = Split(arrSerialNo(UBound(arrSerialNo)), "&")
If UBound(arrSerialNo1) > 0 Then
formatSerialNo = arrSerialNo1(UBound(arrSerialNo1) - 1)
Else
formatSerialNo = arrSerialNo1(UBound(arrSerialNo1))
End If
End Function
Comment