通过注册表,命令行或软件更改COM端口?

时间:2010-01-04 22:57:29

标签: serial-port virtual-serial-port

有人知道如何更改Windows映射到USB虚拟COM端口的COM端口号吗?您可以通过“设备管理器”更改此设置并单击“高级”按钮..但是如何通过API,注册表更改或命令行操作来执行此操作?

有什么想法吗?

4 个答案:

答案 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.1。在“ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ XXX”中,XXX是您的设备名称。您需要跟踪每个项目以找到“ FriendlyName”,然后根据需要进行更改(例如:“ USB Serial Port(6)”)。 1.2。在上一个键中,再次需要跟踪该项目以找到“ PortName”并将其更改为端口号(例如:“ COM6”)

  2. 更改端口号: 在“ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM名称仲裁器”中,可以找到“ ComDB”,它是已分配的COM端口的位掩码。该值应根据您的COM端口进行更改。注意,第一个字节控制COM8〜1,第二个字节控制COM16〜9,第三个字节控制COM24〜COM17,依此类推。值= 0表示未使用该端口。值= 1表示该端口已被占用。