问题:PID\VID出现相同的情况,COM口重复怎么解决。
思路1:通过代码修改COM口回到原有COM口编号。
思路2:是否有方法固定COM口不进行改变。未找到
思路1方案:
1,找到PID与VID相同设备的不同。
“DeviceID”
代码:
string clsid = "{4d36e978-e325-11ce-bfc1-08002be10318}";
string str = $"Select * From Win32_PnPEntity Where ClassGuid='{clsid}'";
StringBuilder devStr = new StringBuilder();
ManagementObjectSearcher searcher = new ManagementObjectSearcher(str);
foreach (ManagementObject item in searcher.Get())
{
if (item["DeviceID"].ToString().Contains(@"FTDIBUS\VID_0403+PID_6001+\0000"))
{
devStr.AppendLine(string.Format("{0}:{1}", "Availability", item["Availability"]));
devStr.AppendLine(string.Format("{0}:{1}", "Caption", item["Caption"]));
devStr.AppendLine(string.Format("{0}:{1}", "ClassGuid", item["ClassGuid"]));
devStr.AppendLine(string.Format("{0}:{1}", "CompatibleID", item["CompatibleID"]));
devStr.AppendLine(string.Format("{0}:{1}", "ConfigManagerErrorCode", item["ConfigManagerErrorCode"]));
devStr.AppendLine(string.Format("{0}:{1}", "ConfigManagerUserConfig", item["ConfigManagerUserConfig"]));
devStr.AppendLine(string.Format("{0}:{1}", "CreationClassName", item["CreationClassName"]));
devStr.AppendLine(string.Format("{0}:{1}", "Description", item["Description"]));
devStr.AppendLine(string.Format("{0}:{1}", "DeviceID", item["deviceid"]));
devStr.AppendLine(string.Format("{0}:{1}", "ErrorCleared", item["ErrorCleared"]));
devStr.AppendLine(string.Format("{0}:{1}", "ErrorDescription", item["ErrorDescription"]));
devStr.AppendLine(string.Format("{0}:{1}", "HardwareID", item["HardwareID"]));
devStr.AppendLine(string.Format("{0}:{1}", "InstallDate", item["InstallDate"]));
devStr.AppendLine(string.Format("{0}:{1}", "LastErrorCode", item["LastErrorCode"]));
devStr.AppendLine(string.Format("{0}:{1}", "Manufacturer", item["Manufacturer"]));
devStr.AppendLine(string.Format("{0}:{1}", "Name", item["Name"]));
devStr.AppendLine(string.Format("{0}:{1}", "PNPClass", item["PNPClass"]));
devStr.AppendLine(string.Format("{0}:{1}", "PNPDeviceID", item["PNPDeviceID"]));
devStr.AppendLine(string.Format("{0}:{1}", "PowerManagementCapabilities", item["PowerManagementCapabilities"]));
devStr.AppendLine(string.Format("{0}:{1}", "PowerManagementSupported", item["PowerManagementSupported"]));
devStr.AppendLine(string.Format("{0}:{1}", "Present", item["Present"]));
devStr.AppendLine(string.Format("{0}:{1}", "Service", item["Service"]));
devStr.AppendLine(string.Format("{0}:{1}", "Status", item["Status"]));
devStr.AppendLine(string.Format("{0}:{1}", "StatusInfo", item["StatusInfo"]));
devStr.AppendLine(string.Format("{0}:{1}", "SystemCreationClassName", item["SystemCreationClassName"]));
devStr.AppendLine(string.Format("{0}:{1}", "SystemName", item["SystemName"]));
}
}
textBox1.Text = devStr.ToString();
结果:
2、如果修改COM口到指定端口???