Provavelmente, essa pergunta é mais bem feita no stack estouro . Dito isso, dê uma olhada em ComDBReleasePort e ComDBClaimPort no Banco de dados da porta COM . No entanto, alterar atribuições de portas COM programmaticamente não é exatamente considerada uma prática recomendada. Por exemplo, o que acontece se mais dois aplicativos mais concorrentes estiverem lutando para obter a mesma atribuição COM?
O Windows atribui dinamicamente números de porta COM por um bom motivo. Idealmente, seu aplicativo deve ser escrito para que ele procure pela porta COM específica de que precisa. Isso pode ser feito por meio de pesquisa ou usando a interface de gerenciamento do Windows (WMI) .
Se você está fazendo referência a algum aplicativo que alguém escreveu, e você está apenas preso ao design do programa de alguém (ou a falta dele), então você pode querer considerar adicionar um script em lote para modificar a chave do registro em HKLM\Hardware\DEVICEMAP\SERIALCOMM
na inicialização, uma vez que o novo valor não é provável botas.
Eu não sei como essa última opção funcionaria bem, mas se você for um sério PowerShell ou Python usuário, você poderia teoricamente usar uma linguagem de script para acessar diretamente as APIs mencionadas no início da minha resposta para uma nova atribuição de porta COM.