如何获取端口的全名

How to get full name of Port

我正在通过串行端口将 Arduino 连接到我的 C# WinForm。 Windows 设备管理器中显示的名称是“Arduino Uno (COM7)”。但是当我检查显示我的组合框的名称时,我正在获取 comport 列表,然后它只是 COM7。我已经尝试了很多在 Whosebug 上显示的示例,但似乎没有按预期工作。我只是想让我的组合框填充有意义的东西,这样我就不必每次都检查设备管理器了。

这是我用来查找端口的代码。

comboBox1.Items.Clear();
        string[] ports = SerialPort.GetPortNames();
        comboBox1.Items.AddRange(ports);

这是我连接串口的代码...

try
        {
            serialPort1.PortName = comboBox1.Text;
            serialPort1.Open();

        }
        catch
        {
            MessageBox.Show();
        }

您需要使用 WMI:

var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SerialPort");
foreach (ManagementObject result in searcher.Get())
{
    // Look at result["Caption"].ToString() and result["DeviceID"].ToString()
}