我需要更改USB串行适配器的端口号,我有以下几条找到它,现在我需要将其端口名/ COM号更改为COM11 。C#如何将COM端口更改为指定的端口
我需要的正是这一点,但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);
}
如果你正在设置p.PortName你有它注释掉..你有没有试图取消它的注释并返回p.PortName ..?也在你的方法里面,你可以显示完整的方法是什么样的返回类型..? – MethodMan 2012-01-10 15:16:25
当做这样的事情例如更改打印机端口有一个.Put();方法可以检查是否有p.Put();在返回端口之前 – MethodMan 2012-01-10 15:24:40
是的,p.PortName =“COM11”不起作用,我把它放在那里以显示想要的。 SerialPort没有像.Put()这样的方法,我需要一些代码来更新其设置 – 2012-01-10 15:54:34