Reputation: 566
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.
Upvotes: 5
Views: 33167
Reputation: 11
COM port number can be found with help of wmi services, here is a vbscript example for detecting usb com port number
Upvotes: 1
Reputation: 20838
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.
Upvotes: 1
Reputation: 17647
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/
Upvotes: 5
Reputation: 941635
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.
Upvotes: 11