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