简体   繁体   中英

Getting the port name of a connected USB device

When a USB device is connected to the computer, how can I get the PORT name which it is connected using C# code. I found many ways to find when a USB is connected, disconnected, drive letter, path, device id etc. but didn't find any clear example on how to know to which port it got connected. I saw one possible explanation but that involves lot of pinvokes which I totally don't understand. I like to believe there are more direct and easy ways to get such info in c# alone, without using any unmanaged code.

USB ports don't have names. It is a bus, it doesn't matter what connector you use. Just like it doesn't matter where you plug in a card in the bus inside of the machine.

If you are actually talking about a USB device whose driver emulates a serial port (like "COM5"), pretty common, then you can get some info about the driver out of a WMI query, Win32_SerialPort class. Use the WMI Code Creator tool to play with such a query and to auto-generate the C# code you need.

Maybe you can use a C# to USB device library as described here:
Are there any good C# to usb device libraries?

From the above answer: For getting a list of devices connected:
http://code.google.com/p/usb-devices-list/

I found a very nice library here page 1 and here page 2

The website is Chinese, but the code is not. It does not work for x64 (it'll compile, but the answers are bogus), but does work for x86.

可以在wmi服务的帮助下找到COM端口号,这是一个用于检测usb com端口号的vbscript示例

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM