Question

Quelqu'un sait comment changer le numéro de port COM Windows cartes USB port COM virtuel?Vous pouvez changer cela via le Gestionnaire de Périphériques et en cliquant sur le bouton Avancé..mais comment pouvez-vous faire cela via une API, un changement de registre ou de l'opération de ligne de commande?

Des idées s'il vous plaît?

Était-ce utile?

La solution

Vous trouverez peut-être cette réponse utile:

Comment puis-je obtenir le nom convivial d'un port COM dans Windows?

Il est de trouver le nom convivial, mais je pense que vous le trouverez vous pointe vers la zone de droite du registre, en utilisant le mécanisme « officiel » pour localiser la bonne clé.

Cependant, si vous modifiez l'affectation du port, vous devez également mettre à jour la base de données de port com - voir: https://msdn.microsoft.com/en-us/library/ff546481.aspx

Quand je devais faire quelque chose de semblable, je l'ai trouvé le bon dispositif en utilisant le mécanisme décrit dans l'article lié SO, puis appelé SerialDisplayAdvancedSettings ((HWND) NULL, hDeviceInfo, & devInfoData); pour afficher la boîte de dialogue avancée et laissez le système d'exploitation gérer le travail.

Aujourd'hui, vous êtes de plus en plus susceptibles d'être rencontrer bizarres « pas réel » ports série (par exemple les ports USB) qui pourraient avoir d'autres incompatibilités dont vous avez besoin de se méfier de trop.

Autres conseils

Je surveillais les changements de registre lors du changement le port COM 1 à 110 et trouvé modifications dans les clés suivantes:

  

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

     

[HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ COM Nom 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]   "PortName" = "COM110"

Désinvolte, je ne sais pas comment le faire, mais voici ce que je ferais:

L'utilisation de l'Ordinateur/ le Gestionnaire de Périphériques méthode pour affecter certains improbable port com, comme 61.Ensuite utiliser regedit pour la recherche COM61 et voir ce que le Gestionnaire de Périphériques n'.

Je sais que j'ai vu toutes ces choses dans le registre quelque part, mais une recherche rapide de la base de connaissances n'ai pas les réponses.

Ce changement se fait en deux étapes ci-dessous dans le registre par le « regedit »:

  1. Modifier le nom: Dans la première étape, vous devez changer les clés ci-dessous: 1.1. Dans le "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ XXX" que XXX est le nom de votre appareil. Vous devez tracer chaque élément pour trouver la « FriendlyName » puis changer comme vous le souhaitez (Ex: « USB Serial Port (6) »). 1.2. Dans la clé précédente, encore une fois, vous devez tracer l'article pour trouver la « PortName » et changer le numéro de port (Ex: « COM6 »)

  2. Modifier le numéro de port: Dans le « HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Nom Arbiter », vous pouvez trouver le « ComDB » qui est un masque de bits des ports COM déjà alloués. Cette valeur doit être en fonction de vos changements ports COM. Remarque: Le premier contrôle octet COM8 ~ 1, contrôle le deuxième octet COM16 ~ 9, le troisième contrôle octet COM24 ~ COM17 et ainsi de suite. Une valeur = 0 signifie que le port ne soit pas utilisé. Une valeur = 1 signifie que le port est occupé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top