如何在C#中扫描COM端口?

C#是否提供了扫描可用COM端口的有效方法? 我想在我的应用程序中有一个下拉列表,其中用户可以选择一个检测到的COM端口。 创建和填充下拉列表不是问题。 我只需要知道如何使用C#扫描可用的COM端口。 我使用的是Microsoft Visual C#2008 Express Edition。 谢谢。

System.IO.Ports是您想要的命名空间。

SerialPort.GetPortNames将列出所有串行COM端口。

遗憾的是,并不直接从C#支持并行端口,因为除了传统情况之外,它们很少使用。 也就是说,您可以通过查询以下注册表项来列出它们:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS 

有关详细信息,请参阅Microsoft.Win32名称空间。

通过System.Management命名空间使用WMI。 一个快速的谷歌找到这个代码:

 using System; using System.Management; public class Foo { public static void Main() { var instances = new ManagementClass("Win32_SerialPort").GetInstances(); foreach ( ManagementObject port in instances ) { Console.WriteLine("{0}: {1}", port["deviceid"], port["name"]); } }