I've been trying to create a quick app that detects a usb device has been pluged in to get all its information.
At the moment I've got as far as to detect all the usb devices plugged in but whenever I try to get the information of the plugged device I get an error in VB
this is my code.
Imports System.Management
Imports System.Runtime.InteropServices
Public Class Form1
'Used to detected if any of the messages are any of these constants values.
Private Const WM_DEVICECHANGE As Integer = &H219
Private Const DBT_DEVICEARRIVAL As Integer = &H8000
Private Const DBT_DEVICEREMOVECOMPLETE As Integer = &H8004
Private Const DBT_DEVTYP_VOLUME As Integer = &H2 '
'
'Get the information about the detected volume.
Private Structure DEV_BROADCAST_VOLUME
Dim Dbcv_Size As Integer
Dim Dbcv_Devicetype As Integer
Dim Dbcv_Reserved As Integer
Dim Dbcv_Unitmask As Integer
Dim Dbcv_Flags As Short
End Structure
Protected Overrides Sub WndProc(ByRef M As System.Windows.Forms.Message)
Dim USBClass As New System.Management.ManagementClass("Win32_USBHub")
Dim USBCollection As System.Management.ManagementObjectCollection = USBClass.GetInstances()
Dim USB As System.Management.ManagementObject
If M.Msg = WM_DEVICECHANGE Then
For Each USB In USBCollection
RTextBox1.Text = RTextBox1.Text & "Description = " & USB("Name").ToString()
RTextBox1.Text = RTextBox1.Text & "Device ID = " & USB("deviceid").ToString()
RTextBox1.Text = RTextBox1.Text & "PNP Device ID = " & USB("PNPDeviceID").ToString()
Next USB
End If
MyBase.WndProc(M)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ScanUSB()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
RTextBox1.Text = ""
End Sub
Private Sub ScanUSB()
Dim strComputer As String
Dim objWMIService As Object
Dim colDevices As Object
Dim strDeviceName As String
Dim strQuotes As String
Dim arrDeviceNames As Array
Dim colUSBDevices As Object
Dim objUSBDevice As Object
Dim item2 As String
strComputer = "."
objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
colDevices = objWMIService.ExecQuery _
("Select * From Win32_USBControllerDevice")
For Each objDevice In colDevices
strDeviceName = objDevice.Dependent
strQuotes = Chr(34)
strDeviceName = Replace(strDeviceName, strQuotes, "")
arrDeviceNames = Split(strDeviceName, "=")
strDeviceName = arrDeviceNames(1)
colUSBDevices = objWMIService.ExecQuery _
("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
For Each objUSBDevice In colUSBDevices
RTextBox1.Text = RTextBox1.Text & "Availability: " & objUSBDevice.Availability & Chr(13)
RTextBox1.Text = RTextBox1.Text & "Caption: " & objUSBDevice.Caption & Chr(13)
RTextBox1.Text = RTextBox1.Text & "ClassGuid: " & objUSBDevice.ClassGuid & Chr(13)
RTextBox1.Text = RTextBox1.Text & "ConfigManagerErrorCode: " & objUSBDevice.ConfigManagerErrorCode & Chr(13)
RTextBox1.Text = RTextBox1.Text & "ConfigManagerUserConfig: " & objUSBDevice.ConfigManagerUserConfig & Chr(13)
RTextBox1.Text = RTextBox1.Text & "CreationClassName: " & objUSBDevice.CreationClassName & Chr(13)
RTextBox1.Text = RTextBox1.Text & "Description: " & objUSBDevice.Description & Chr(13)
RTextBox1.Text = RTextBox1.Text & "DeviceID: " & objUSBDevice.DeviceID & Chr(13)
RTextBox1.Text = RTextBox1.Text & "ErrorCleared: " & objUSBDevice.ErrorCleared & Chr(13)
RTextBox1.Text = RTextBox1.Text & "ErrorDescription: " & objUSBDevice.ErrorDescription & Chr(13)
RTextBox1.Text = RTextBox1.Text & "InstallDate: " & objUSBDevice.InstallDate & Chr(13)
RTextBox1.Text = RTextBox1.Text & "LastErrorCode: " & objUSBDevice.LastErrorCode & Chr(13)
RTextBox1.Text = RTextBox1.Text & "Manufacturer: " & objUSBDevice.Manufacturer & Chr(13)
RTextBox1.Text = RTextBox1.Text & "Name: " & objUSBDevice.Name & Chr(13)
RTextBox1.Text = RTextBox1.Text & "PNPDeviceID: " & objUSBDevice.PNPDeviceID & Chr(13)
RTextBox1.Text = RTextBox1.Text & "PowerManagementCapabilities: " & objUSBDevice.PowerManagementCapabilities & Chr(13)
RTextBox1.Text = RTextBox1.Text & "PowerManagementSupported: " & objUSBDevice.PowerManagementSupported & Chr(13)
RTextBox1.Text = RTextBox1.Text & "Service: " & objUSBDevice.Service & Chr(13)
RTextBox1.Text = RTextBox1.Text & "Status: " & objUSBDevice.Status & Chr(13)
RTextBox1.Text = RTextBox1.Text & "StatusInfo: " & objUSBDevice.StatusInfo & Chr(13)
RTextBox1.Text = RTextBox1.Text & "SystemCreationClassName: " & objUSBDevice.SystemCreationClassName & Chr(13)
RTextBox1.Text = RTextBox1.Text & "SystemName: " & objUSBDevice.SystemName & Chr(13)
For Each item2 In objUSBDevice.HardwareID
RTextBox1.Text = RTextBox1.Text & "HardwareID: " & item2 & Chr(13)
Next
RTextBox1.Text = RTextBox1.Text & objUSBDevice.Description() & Chr(13)
RTextBox1.Text = RTextBox1.Text & Chr(13) & Chr(13)
Next
Next
End Sub
End Class