In a C#.net console application, what code can i write to print on the screen the VID and PID of each USB device connected to the system?
1 Answers
5
votes
Here's some code I've written based on what I've found so far. There may be a better way to do this.
public static void MyMethod()
{
System.Management.ManagementClass USBClass = new ManagementClass("Win32_USBDevice");
System.Management.ManagementObjectCollection USBCollection = USBClass.GetInstances();
foreach (System.Management.ManagementObject usb in USBCollection)
{
string deviceId = usb["deviceid"].ToString();
Console.WriteLine(deviceId);
int vidIndex = deviceId.IndexOf("VID_");
string startingAtVid = deviceId.Substring(vidIndex + 4); // + 4 to remove "VID_"
string vid = startingAtVid.Substring(0, 4); // vid is four characters long
Console.WriteLine("VID: " + vid);
int pidIndex = deviceId.IndexOf("PID_");
string startingAtPid = deviceId.Substring(pidIndex + 4); // + 4 to remove "PID_"
string pid = startingAtPid.Substring(0, 4); // pid is four characters long
Console.WriteLine("PID: " + pid);
}
Console.ReadLine();
}