Pergunta

Alguém sabe como alterar o número da porta COM que o Windows mapeia para uma porta COM virtual USB? Você pode mudar isso através do Gerenciador de Dispositivos e clique no botão Avançado .. mas como você pode fazer isso através de uma operação de API, alteração de registro ou linha de comando?

Todas as ideias agradar?

Foi útil?

Solução

Você pode achar esta resposta útil:

Como eu obter o nome amigável de uma porta COM no Windows?

É sobre encontrar o nome amigável, mas eu acho que você vai encontrá-lo aponta-lo para a área à direita do registro, usando o mecanismo de 'oficial' para localizar a chave certa.

No entanto, se você alterar a atribuição de porta, você também deve atualizar o banco de dados da porta COM - veja: https://msdn.microsoft.com/en-us/library/ff546481.aspx

Quando eu tive que fazer algo semelhante, eu encontrei o dispositivo correto utilizando o mecanismo descrito no artigo SO ligada, e então chamou SerialDisplayAdvancedSettings ((HWND) NULL, hDeviceInfo, & devInfoData); para exibir o diálogo avançada e deixe a alça OS o trabalho duro.

Hoje em dia você é mais e mais propensos a estar encontrando estranhos 'não reais' portas seriais (por exemplo, portas USB) que possam ter outras incompatibilidades que você precisa para ser cauteloso demais.

Outras dicas

I monitorizada alterações de registo durante a mudança da porta COM 1-110 e modificações encontrado no seguinte chaves:

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

[HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ COM Nome Arbiter] "ComDB" = sextavada (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 \ Parameters ControlSet001 \ Enum \ ACPI \ pnp0501 \ 1 \ dispositivo] "PortName" = "COM110"

De imediato, eu não sei como fazê-lo, mas aqui está o que eu faria:

Use o Meu Computador / método Device Manager para atribuir algum porto com pouco provável, como 61. regedit uso Depois de pesquisa para COM61 ??e ver o Gerenciador de Dispositivos fez.

Eu sei que tenho visto todas essas coisas no lugar do registro, mas uma rápida pesquisa da base de conhecimento não apareceu as respostas.

Esta mudança é feita em dois passos abaixo no registro através do "regedit":

  1. Alterar o nome: Na primeira etapa, você precisa mudar o abaixo chaves: 1.1. No "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ XXX" que XXX é o nome do dispositivo. Você precisa rastrear cada item para encontrar o "FriendlyName" e, em seguida, alterá-lo como quiser (Ex: "USB Serial Port (6)"). 1.2. Na chave anterior, novamente você precisa rastrear o item para encontrar o "PortName" e alterá-lo para o número da porta (Ex: "COM6")

  2. Alterar o número da porta: No "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Nome Arbiter", você pode encontrar o "ComDB", que é uma máscara de bits de portas COM já alocados. Este valor deve ser alterado com base em suas portas. Nota: Os controlos primeiro byte COM8 ~ 1, o segundo controla byte COM16 ~ 9, o terceiro byte controles COM24 ~ COM17 e assim por diante. Um valor = 0 significa que a porta não é utilizado. Um valor = 1 significa que a porta se encontra ocupada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top