C#如何获取所有的USB COM端口设备信息呢?为什么要获取USB串口驱动信息,比如我们在操作扫描仪,巴枪的时候,都需要用到,如下图:
如果我们仅仅只是获取COM1与COM2这两个端口的话,使用C#自带的SerialPort类就可以了,如下所示:
string[] comPortsNamesArr = SerialPort.GetPortNames();
当我们遍历输出的时候,就只会输出“COM1”与“COM2”端口。
如果我们要获取所有设备管理器里面的USB串口名称,则可以使用下面的C#代码:
private void getPortDeviceName() { using (ManagementObjectSearcher searcher = new ManagementObjectSearcher ("select * from Win32_PnPEntity where Name like '%(COM%'")) { var hardInfos = searcher.Get(); foreach (var hardInfo in hardInfos) { if (hardInfo.Properties["Name"].Value != null) { string deviceName = hardInfo.Properties["Name"].Value.ToString(); Console.WriteLine(deviceName); } } } }
输出USB串口设备名称如图所示: