C# 查看電腦序列埠

最簡單的查看方式:
  
var names = SerialPort.GetPortNames();
foreach (var name in names)
{
    Console.WriteLine(name);
}


註: 如果出現 Cannot resolve symbol 'SerialPort' ,則需要安裝 System.IO.Ports 套件

但其實這種方式不太準確,例如筆者有使用虛擬的方式連接 COM3 和 COM4,在筆者使用上面的程式碼時 COM3 和 COM4 會重複輸出:
  
COM3
COM5
COM6
COM4
COM3
COM4


第二種方式:
  
var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_SerialPort");

var ports = searcher.Get();

if (ports.Count == 0)
{
    Console.WriteLine("沒有可用的序列埠。");
}
else
{
    foreach (ManagementObject port in ports)
    {
        // 輸出序列埠的名稱
        Console.WriteLine(port["DeviceID"]);
    }
}


註: 需要安裝 System.Management 套件。

留言