C# C如何检查COM端口中是否连接了某些设备?
我想做一个程序,当点击一个按钮时,检测某些设备是否通过devicename连接到COM端口。例如,如果设备已连接,并且在设备管理器中显示华为移动连接-3G PC UI接口COM16,则在消息框中告知设备是否已连接 我有一个代码,但它只显示可用的COM端口C# C如何检查COM端口中是否连接了某些设备?,c#,forms,port,C#,Forms,Port,我想做一个程序,当点击一个按钮时,检测某些设备是否通过devicename连接到COM端口。例如,如果设备已连接,并且在设备管理器中显示华为移动连接-3G PC UI接口COM16,则在消息框中告知设备是否已连接 我有一个代码,但它只显示可用的COM端口 private void button1_Click(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames();
private void button1_Click(object sender, EventArgs e)
{
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
richTextBox1.Text = port.ToString();
}
}
如果您可以在VisualStudio中使用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的所有设备的名称。您可以按设备名称搜索特定设备