问题
I am looking for a way in C# to have a persistent (across when end-users unplug a hub/restart their computer) identifier for USB slots, more specifically, SD card readers. Drive letters are not always assigned to the same slot, but I need a way to identify Slot A physically; as once I can identify it, I can make the connections to a drive letter.
So my question(s):
- Is this possible?
- If so, how would I go about getting these identifiers?
回答1:
WMI class Win32_USBHub.
ManagementObjectSearcher sidQuery = new ManagementObjectSearcher("Select * From Win32_USBHub");
ManagementObjectCollection results = sidQuery.Get();
List<String> deviceID = new List<String>();
foreach (ManagementObject result in results)
{
deviceID.Add(result["DeviceID"]);
}
See more here : Get List of connected USB Devices
Documentation about Win32_USBHub : http://msdn.microsoft.com/en-us/library/windows/desktop/aa394506(v=vs.85).aspx
来源:https://stackoverflow.com/questions/17997284/c-net-usb-device-persistent-identifier