我有一个非常小的代码,显示可用的COM端口。
我的问题是:
有没有一个简单的方法让程序运行在托盘和只有弹出时,一个新的COM端口可用,它是可能添加名称的COM端口,你可以看到在设备管理器ec“USB串行端口”?
我经常添加/删除一个USB-〉RS232转换器,并发现它是一个痛苦的屁股,因为我必须进入设备管理器,看看它被分配到什么COM端口。每次都不一样
也许已经有一个小应用程序可以做到这一点,但我还没有找到它在谷歌
using System;
using System.Windows.Forms;
using System.IO.Ports;
namespace Available_COMports
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//show list of valid com ports
foreach (string s in SerialPort.GetPortNames())
{
listBox1.Items.Add(s);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}
5条答案
按热度按时间t0ybt7op1#
s71maibg2#
看看this question。它使用WMI查找可用的COM端口。您可以跟踪存在哪些COM端口,并且只通知新的COM端口。
bxgwgixi3#
要了解设备何时被热插拔,您需要处理
WM_DEVICECHANGE
。调用RegisterDeviceNotification
以启用这些通知的传递。nmpmafwu4#
获取某个设备的COM号的代码。
7lrncoxx5#
我使用的是.NET 6。我得到了Md.Rakibuz苏丹的答案,在添加了nuget包系统后工作。IO端口。
Program.cs: