Изменить COM-порт через реестр, командную строку или программное обеспечение?

кто-нибудь знает, как изменить номер COM-порта, который Windows сопоставляет с виртуальным COM-портом USB? Вы можете изменить это с помощью Диспетчера устройств и нажав на кнопку Дополнительно.. но как вы можете сделать это через API, изменение реестра или операцию командной строки?

любые идеи, пожалуйста?

3 ответов


вы можете найти этот ответ полезным:

как получить понятное имя COM-порта в Windows?

речь идет о поиске дружественного имени, но я думаю, что вы найдете его указывает на правильную область реестра, используя "официальный" механизм для поиска правильного ключа.

однако, если вы измените назначение порта, вы также должны обновить базу данных com-портов-см.: https://msdn.microsoft.com/en-us/library/ff546481.aspx

когда я должен был сделать что-то подобное, я нашел правильное устройство, используя механизм, описанный в статье связанный SO, а затем вызвал SerialDisplayAdvancedSettings((HWND)NULL, hDeviceInfo, &devInfoData); для отображения расширенного диалога и позволить ОС обрабатывать тяжелую работу.

В настоящее время вы все чаще и чаще сталкиваетесь с нечетными "не реальными" последовательными портами (например, USB-портами), которые могут иметь к другим несовместимостям тоже нужно относиться с осторожностью.


я отслеживал изменения реестра во время изменения COM-порта 1 до 110 и нашел изменения в следующих разделах:

[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM] "\Device\Serial0 " = "COM110"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\com арбитр имен] "ComDB" =hex (3): FC, 7F,00,00,00,00,00,00,00,00,00,00,00,20,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI\PNP0501\1\Параметры Устройства] "PortName" = "COM110"


навскидку, я не знаю как это сделать, но вот что я бы сделал:

используйте метод My Computer/ Device Manager, чтобы назначить какой-то маловероятный com-порт, например 61. Затем используйте regedit для поиска COM61 и посмотрите, что сделал Диспетчер устройств.

Я знаю, что видел все эти вещи в реестре где-то, но быстрый поиск в базе знаний не нашел ответов.