我有一些遗留代码,它通过调用EnumPorts()函数然后过滤以"COM"开头的端口名称来提供PC上可用COM端口的列表.
出于测试目的,如果我可以将此代码用于com0com这样的代码,它将非常有用,它提供了作为零调制解调器循环在一起的虚拟COM端口对.
但是该EnumPorts()函数找不到com0com端口(即使没有过滤"COM").HyperTerminal和SysInternals PortMon都可以看到它们,所以我确信它安装正确.
那么还有其他一些Win32功能可以提供可用串口的明确列表吗?
我有一个非常小的代码,显示可用的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)
{
}
}
Run Code Online (Sandbox Code Playgroud)
}