有人知道如何更改Windows映射到USB虚拟COM端口的COM端口号吗?您可以通过“设备管理器”更改此设置并单击“高级”按钮..但是如何通过API,注册表更改或命令行操作来执行此操作?
有什么想法吗?
答案 0 :(得分:8)
我在将COM端口1更改为110期间监视了注册表更改,并在以下键中找到了修改:
[HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM] “\设备\的Serial0”= “COM110”
[HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ COM Name Arbiter] “ComDB”=十六进制(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”
答案 1 :(得分:6)
您可能会发现此答案很有用:
How do I get the friendly name of a COM port in Windows?
这是关于找到友好名称,但我认为你会发现它指向注册表的正确区域,使用“官方”机制来定位正确的密钥。
但是,如果更改端口分配,还应更新com端口数据库 - 请参阅:https://msdn.microsoft.com/en-us/library/ff546481.aspx
当我必须做类似的事情时,我找到了使用链接SO文章中描述的机制的正确设备,然后调用SerialDisplayAdvancedSettings((HWND)NULL,hDeviceInfo,& devInfoData);显示高级对话框,让操作系统处理好工作。
现在你越来越有可能遇到奇怪的“非真实”串行端口(例如USB端口),这些端口可能还有其他兼容性,你需要警惕。
答案 2 :(得分:1)
副手,我不知道怎么做,但这就是我要做的事情:
使用“我的电脑/设备管理器”方法分配一些不太可能的com端口,例如61.然后使用regedit搜索COM61并查看设备管理器的功能。
我知道我已经在注册表中看到了所有这些内容,但是快速搜索知识库并没有找到答案。
答案 3 :(得分:0)
此更改通过“ regedit”在注册表中的以下两个步骤中完成:
更改名称: 第一步,您需要更改以下键: 1.1。在“ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ XXX”中,XXX是您的设备名称。您需要跟踪每个项目以找到“ FriendlyName”,然后根据需要进行更改(例如:“ USB Serial Port(6)”)。 1.2。在上一个键中,再次需要跟踪该项目以找到“ PortName”并将其更改为端口号(例如:“ COM6”)
更改端口号: 在“ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM名称仲裁器”中,可以找到“ ComDB”,它是已分配的COM端口的位掩码。该值应根据您的COM端口进行更改。注意,第一个字节控制COM8〜1,第二个字节控制COM16〜9,第三个字节控制COM24〜COM17,依此类推。值= 0表示未使用该端口。值= 1表示该端口已被占用。