繁体   English   中英

C#如何检查COM端口中是否连接了某些设备?

[英]C# How to check if certain device is connected in COM port?

我想制作一个程序,当点击一个按钮时,检测某个设备是否通过设备连接在端口上。 例如,如果设备已连接且在设备管理器中显示“HUAWEI Mobile Connect - 3G PC UI界面(COM16)”,请在消息框中告知设备是否已连接。

在此输入图像描述

我有一个代码,但它只显示可用的COM端口。

private void button1_Click(object sender, EventArgs e)
    {
        string[] ports = SerialPort.GetPortNames();

        foreach (string port in ports)
        {
            richTextBox1.Text = port.ToString();
        }
    }

如果您可以在Visual Studio中使用System.Management nuget包。 您可以使用以下代码来获取您的设备名称。

 using (var devices = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort"))
            {
                string[] portnames = SerialPort.GetPortNames();
                var ports = devices.Get().Cast<ManagementBaseObject>().ToList();
                var device_list = (from n in portnames
                    join p in ports on n equals p["DeviceID"].ToString()
                    select n + " - " + p["Caption"]).ToList();

此处设备列表包含连接到COM的所有设备的名称。 您可以按设备名称搜索特定设备

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM