Изменить номер COM-порта программно

В диспетчере устройств я могу щелкнуть правой кнопкой мыши последовательное устройство, перейти на вкладку "Параметры порта", нажать "Дополнительно" и изменить номер COM-порта в раскрывающемся меню.

Мне нужно автоматизировать этот шаг на большом количестве компьютеров. Есть ли способ написать этот процесс или сделать это программно?

1 ответ

Решение

Этот вопрос, вероятно, лучше всего задать при переполнении стека. Тем не менее, взгляните на ComDBReleasePort и ComDBClaimPort в базе данных COM-порта. Однако изменение назначения COM-порта программным способом не совсем считается лучшей практикой. Например, что произойдет, если еще два одновременно работающих приложения пытаются получить одно и то же назначение COM?

Windows динамически назначает номера COM-портов по уважительной причине. В идеале ваше приложение должно быть написано так, чтобы оно искало конкретный COM-порт, в котором оно нуждается. Это можно сделать с помощью опроса или с помощью интерфейса управления Windows (WMI).

Если вы ссылаетесь на какое-то приложение, написанное кем-то другим, и вы просто застряли с разработкой чужой программы (или ее отсутствием), то вы можете рассмотреть возможность добавления пакетного скрипта для изменения раздела реестра в разделе HKLM\Hardware\DEVICEMAP\SERIALCOMM при запуске, поскольку новые значения вряд ли будут удерживаться между перезагрузками.

Я не знаю, насколько хорошо будет работать этот последний вариант, но если вы серьезный пользователь PowerShell или Python, вы можете теоретически использовать любой язык сценариев для прямого доступа к API, упомянутым в начале моего ответа, для одноразового использования. Переназначение COM-порта.

Другие вопросы по тегам