Domanda

Qualcuno sa come modificare il numero di porta COM che Windows mappa su una porta COM virtuale USB?Puoi modificarlo tramite Gestione dispositivi e facendo clic sul pulsante Avanzate.ma come puoi farlo tramite un'API, una modifica del registro o un'operazione da riga di comando?

Qualche idea per favore?

È stato utile?

Soluzione

Si può trovare questa risposta utile:

Come faccio ottenere il nome descrittivo di una porta COM in Windows?

Si tratta di trovare il nome descrittivo, ma penso che lo troverete si punta verso la zona destra del Registro di sistema, utilizzando il meccanismo 'ufficiale' per individuare la chiave giusta.

Tuttavia, se si cambia l'assegnazione della porta, si dovrebbe anche aggiornare il database porta COM - vedi: https://msdn.microsoft.com/en-us/library/ff546481.aspx

Quando ho dovuto fare qualcosa di simile, ho trovato il giusto dispositivo utilizzando il meccanismo descritto nell'articolo collegato SO, e quindi chiamati SerialDisplayAdvancedSettings ((HWND) NULL, hDeviceInfo, e devInfoData); per visualizzare la finestra di dialogo avanzata e lasciare che il sistema operativo di gestire il duro lavoro.

Al giorno d'oggi si è sempre più probabile che sia incontrando strane 'non reali' porte seriali (ad esempio porte USB) che potrebbero avere altre incompatibilità è necessario diffidare di troppo.

Altri suggerimenti

Ho controllato le modifiche del Registro di sistema durante il cambio della porta COM 1 a 110 e ho trovato le modifiche nei seguenti tasti:

  

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

     

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

A prima vista, non so come farlo, ma ecco cosa farei:

Utilizza il metodo Risorse del computer/Gestione dispositivi per assegnare una porta com improbabile, come 61.Quindi utilizzare regedit per cercare COM61 ​​e vedere cosa ha fatto Gestione dispositivi.

So di aver visto tutte queste cose nel registro da qualche parte, ma una rapida ricerca nella knowledge base non ha prodotto risposte.

Questo cambiamento è fatto in due sotto passi nel Registro di sistema attraverso il "regedit":

  1. Cambiare il nome: Nella prima fase, è necessario modificare i tasti di seguito: 1.1. Nella "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ XXX" che XXX è il nome del dispositivo. È necessario tracciare ogni elemento di trovare il "FriendlyName" e poi modificarlo a piacere (Es: "USB Serial Port (6)"). 1.2. Nella chiave precedente, ancora una volta è necessario tracciare la voce per trovare il "PortName" e cambiare per il numero di porta (Es: "COM6")

  2. Modificare il numero di porta: Nella "\ SYSTEM HKEY_LOCAL_MACHINE \ CurrentControlSet \ Control \ COM Nome Arbiter", è possibile trovare il "ComDB", che è una maschera di bit di porte COM già stanziati. Questo valore deve essere il cambiamento in base alle vostre porte COM. Nota, il primo byte controlla COM8 ~ 1, il secondo byte controlla COM16 ~ 9, il terzo byte controlla COM24 COM17 ~ e così via. Un valore = 0 significa che la porta non è utilizzato. Un valore = 1 significa che la porta è occupata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top