Pregunta

¿Alguien sabe cómo cambiar el número de puerto COM que Windows asigna a un puerto USB puerto COM virtual?Usted puede cambiar esto a través del Administrador de Dispositivos y haga clic en el botón opciones Avanzadas..pero ¿cómo se puede hacer esto a través de una API, cambio de registro o de la línea de comandos de la operación?

Alguna idea por favor?

¿Fue útil?

Solución

Es posible que esta respuesta es útil:

Cómo hacer yo obtener el nombre descriptivo de un puerto COM en Windows?

Se trata de encontrar el nombre descriptivo, pero creo que lo encontrará que apunta hacia la zona derecha del registro, mediante el mecanismo de 'oficial' para localizar la clave correcta.

Sin embargo, si se cambia la asignación de puerto, también debe actualizar la base de datos de puerto com - ver: https://msdn.microsoft.com/en-us/library/ff546481.aspx

Cuando tenía que hacer algo similar, he encontrado el dispositivo derecha utilizando el mecanismo descrito en el artículo enlazado SO y, a continuación llamados SerialDisplayAdvancedSettings ((HWND) NULL, hDeviceInfo, y devInfoData); para visualizar el diálogo avanzado y dejar que el sistema operativo manejar el trabajo duro.

Hoy en día es más y más probable que sea el encuentro 'no es real' puertos serie (por ejemplo, los puertos USB) extrañas que podrían tener otras incompatibilidades que hay que tener cuidado también.

Otros consejos

Monitoricé cambios en el registro durante el cambio de puerto COM 1 a 110, y encontré modificaciones en las siguientes teclas:

  

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

     

[HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Nombre COM Árbitro]   "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 \ Parámetros de dispositivos]   "PortName" = "COM110"

De improviso, no sé cómo hacerlo, pero aquí es lo que yo haría:

Uso el de Mi Equipo/ Dispositivo del Administrador de método para asignar algunas raro puerto com, como 61.A continuación, utilice el editor del registro para buscar COM61 y ver lo que el Administrador de Dispositivos lo hizo.

Sé que me he visto todas estas cosas en el registro, en algún lugar, pero una búsqueda rápida en la base de conocimientos no suba de las respuestas.

Este cambio se realiza en dos pasos siguientes en el registro a través de la "regedit":

  1. Cambiar el nombre de: En el primer paso, es necesario cambiar las claves siguientes: 1.1. En el "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ XXX" que XXX es el nombre del dispositivo. Es necesario rastrear cada artículo para encontrar el "FriendlyName" y luego cambiarlo como desee (Ej: "USB Serial Port (6)"). 1.2. En la clave anterior, una vez que necesita para remontar el artículo para encontrar el "PortName" y cambiarlo por el número de puerto (Ej: "COM6")

  2. Cambiar el número de puerto: En el "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Nombre del árbitro", se encuentra la "ComDB", que es una máscara de bits de puertos COM ya asignados. Este valor debe ser el cambio basado en los puertos COM. Tenga en cuenta, el primer byte controla COM8 ~ 1, el segundo byte controla COM16 ~ 9, el tercer byte controla COM24 ~ COM17 y así sucesivamente. Un valor = 0 significa que el puerto no se utiliza. Un valor = 1 significa que el puerto está ocupado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top