Alterar o número da porta COM programaticamente

4

No Gerenciador de Dispositivos, posso clicar com o botão direito do mouse em um dispositivo serial, navegar até a guia Configurações da Porta, clicar em Avançado e alterar o Número da Porta COM por meio de um menu suspenso.

Eu preciso automatizar este passo em um grande número de PCs. Existe uma maneira de roteirizar esse processo, ou fazer isso de forma programática?

    
por MatthewKing 11.12.2014 / 07:14

1 resposta

2

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.

    
por 12.02.2015 / 20:20