问题: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口到指定端口???