Изменить номер COM-порта программно
В диспетчере устройств я могу щелкнуть правой кнопкой мыши последовательное устройство, перейти на вкладку "Параметры порта", нажать "Дополнительно" и изменить номер COM-порта в раскрывающемся меню.
Мне нужно автоматизировать этот шаг на большом количестве компьютеров. Есть ли способ написать этот процесс или сделать это программно?
1 ответ
Этот вопрос, вероятно, лучше всего задать при переполнении стека. Тем не менее, взгляните на ComDBReleasePort и ComDBClaimPort в базе данных COM-порта. Однако изменение назначения COM-порта программным способом не совсем считается лучшей практикой. Например, что произойдет, если еще два одновременно работающих приложения пытаются получить одно и то же назначение COM?
Windows динамически назначает номера COM-портов по уважительной причине. В идеале ваше приложение должно быть написано так, чтобы оно искало конкретный COM-порт, в котором оно нуждается. Это можно сделать с помощью опроса или с помощью интерфейса управления Windows (WMI).
Если вы ссылаетесь на какое-то приложение, написанное кем-то другим, и вы просто застряли с разработкой чужой программы (или ее отсутствием), то вы можете рассмотреть возможность добавления пакетного скрипта для изменения раздела реестра в разделе HKLM\Hardware\DEVICEMAP\SERIALCOMM
при запуске, поскольку новые значения вряд ли будут удерживаться между перезагрузками.
Я не знаю, насколько хорошо будет работать этот последний вариант, но если вы серьезный пользователь PowerShell или Python, вы можете теоретически использовать любой язык сценариев для прямого доступа к API, упомянутым в начале моего ответа, для одноразового использования. Переназначение COM-порта.