C#如何将COM端口更改为指定端口
本文关键字:COM | 更新日期: 2023-09-27 18:20:05
我需要更改USB串行适配器的端口号,我有以下方法来找到它,现在我需要将其端口名/COM号更改为COM11。
我需要这个,但通过C#代码:
我的电脑->管理->设备管理器->端口->通信端口->端口设置->高级->COM端口号
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root''WMI",
"SELECT * FROM MSSerial_PortName");
foreach (ManagementObject queryObj in searcher.Get())
{
//If the serial port's instance name contains USB
//it must be a USB to serial device
if (queryObj["InstanceName"].ToString().Contains("USB"))
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("MSSerial_PortName instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("InstanceName: {0}", queryObj["InstanceName"]);
Console.WriteLine(queryObj["PortName"] + "is a USB to SERIAL adapter/converter");
string port = queryObj["PortName"].ToString();
SerialPort p = new SerialPort(port);
//p.PortName = "COM11";
return port ;
}
}
throw new Exception(Messages.PINPAD_NOT_FOUND);
}
我认为wmi中不提供com端口重命名。从技术角度来看,您所指的配置更改了连接到驱动程序的符号链接。我认为这是可行的,但你必须在DDK中寻找它(也许在WDM中)。
据我所知,你的程序的正确解决方案是能够使自己适应硬件的任何名称。您应该将正确的端口名存储在配置文件或注册表中的某个位置,并允许用户自定义它。