Getting the port name of a connected USB device

隐身守侯 提交于 2019-12-06 03:37:32

问题


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.


回答1:


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/




回答2:


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.




回答3:


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.




回答4:


COM port number can be found with help of wmi services, here is a vbscript example for detecting usb com port number



来源:https://stackoverflow.com/questions/4838033/getting-the-port-name-of-a-connected-usb-device

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!