11

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

请问有什么想法吗?

4

4 回答 4

8

我在将 COM 端口 1 更改为 110 期间监视了注册表更改,并在以下键中发现了修改:

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

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\COM 名称仲裁者] "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\设备参数] "PortName"="COM110"

于 2012-10-17T07:49:16.133 回答
7

您可能会发现此答案很有用:

如何在 Windows 中获取 COM 端口的友好名称?

这是关于查找友好名称的问题,但我认为您会发现它会将您指向注册表的正确区域,使用“官方”机制来定位正确的键。

但是,如果您更改端口分配,您还应该更新 com 端口数据库 - 请参阅: https ://msdn.microsoft.com/en-us/library/ff546481.aspx

当我不得不做类似的事情时,我使用链接的 SO 文章中描述的机制找到了正确的设备,然后调用 SerialDisplayAdvancedSettings((HWND)NULL, hDeviceInfo, &devInfoData); 显示高级对话框并让操作系统处理繁重的工作。

如今,您越来越可能遇到奇怪的“非真实”串行端口(例如 USB 端口),这些端口可能还有其他您需要警惕的不兼容问题。

于 2010-01-04T23:09:44.633 回答
5

此更改通过“regedit”在注册表中的以下两个步骤中完成:

  1. 更改名称:第一步,您需要更改以下键:

    1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\XXX那个 XXX 是您的设备名称。您需要跟踪每个项目以找到FriendlyName然后根据需要更改它(例如:“USB Serial Port (6)”);
    2. 在上一个键中,您需要再次跟踪该项目以找到PortName并将其更改为端口号(例如:“COM6”)。
  2. 更改端口号:

    1. 在 中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter,您可以找到ComDB已分配的 COM 端口的位掩码。此值应根据您的 COM 端口进行更改。注意,第一个字节控制COM8~1,第二个字节控制COM16~9,第三个字节控制COM24~COM17,以此类推。值=0 表示未使用端口。value=1 表示端口被占用。
于 2019-03-05T21:37:59.757 回答
1

副手,我不知道该怎么做,但这是我会做的:

使用我的电脑/设备管理器方法分配一些不太可能的 com 端口,如 61。然后使用 regedit 搜索 COM61​​ 并查看设备管理器做了什么。

我知道我在某个地方的注册表中看到了所有这些东西,但是快速搜索知识库并没有找到答案。

于 2010-01-04T23:03:36.157 回答