当USB设备连接到计算机时,如何获取使用C#代码连接的PORT名称。 我发现很多方法来findUSB连接,断开连接,驱动器号,path,设备ID等,但没有find关于如何知道它连接到哪个端口的明确示例。 我看到了一个可能的解释,但是这涉及到很多我完全不明白的pinvokes。 我喜欢相信有更直接和简单的方法来获得这样的信息在C#单独,而不使用任何非托pipe代码。
也许你可以使用一个C#到USB设备库,如下所述:
有没有什么好的C#到USB设备库?
从上面的答案:获取连接的设备列表:
http://code.google.com/p/usb-devices-list/
USB端口没有名称。 这是一个公共汽车,它使用什么连接器并不重要。 就像插入卡在机器内部总线上的位置并不重要。
如果您实际上正在讨论驱动程序模拟串行端口(如“COM5”)的USB设备,那么您可以从WMI查询Win32_SerialPort类中获取关于驱动程序的一些信息。 使用WMI Code Creator工具来玩这样的查询并自动生成您需要的C#代码。
我在这里找到了一个非常好的图书馆,第一页和第二页
该网站是中文,但代码不是。 它不适用于x64(它会编译,但答案是假的),但对x86有效。
COM端口号可以在WMI服务的帮助下找到,这里是一个用于检测USB端口号的VBScript示例
对于JAVA
http://www.digitalinferno.com/wiki/Wiki.jsp?page=JNAPrintDevices try this code from friendly name fetch port number using rugular expression if(friendlyName.lastIndexOf("COM")>=0){ int temp=friendlyName.lastIndexOf("COM"); System.out.println(); sb.append(" PortNumber:").append(friendlyName.substring(temp,friendlyName.length()-1)).append("\n"); add this in tostring method.