代码之家  ›  专栏  ›  技术社区  ›  SparkyNZ

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

  •  7
  • SparkyNZ  · 技术社区  · 16 年前

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

    有什么想法吗?

    4 回复  |  直到 16 年前
        1
  •  6
  •   Community Mohan Dere    9 年前

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

    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和devinfo data);以显示高级对话框并让操作系统处理繁重的工作。

    如今,您越来越可能遇到奇怪的“非真实”串行端口(如USB端口),这些端口可能还有其他不兼容之处,您也需要小心。

        2
  •  7
  •   Alireza    13 年前

    我在将COM端口1更改为110期间监视注册表更改,并在以下项中找到修改:

    [hkey_local_machine\hardware\devicemap\serialcomm] “\device\serial0”=“通信110”

    [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,00,00,00,00

    [hkey_local_machine\system\controlset001\enum\acpi\pnp0501\1\device参数] “portname”=“Com110”

        3
  •  1
  •   wallyk    16 年前

    现在,我不知道该怎么做,但我要做的是:

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

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

        4
  •  0
  •   Farzad    7 年前

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

    1. 更改名称: 在第一步中,您需要更改以下键: 1.1。在“hkey_local_machine\system\currentcontrolset\enum\xxx”中,xxx是您的设备名。您需要跟踪每个项目以找到“friendlyname”,然后根据需要更改它(例如:“USB串行端口(6)”)。 1.2。在上一个键中,再次需要跟踪该项以找到“portname”,并将其更改为端口号(例如:“com6”)。

    2. 更改端口号: 在“hkey_local_machine\system\currentcontrolset\control\com name arbiter”中,可以找到“comdb”,它是已经分配的com端口的位掩码。此值应根据您的COM端口进行更改。注:第一字节控制COM8~1,第二字节控制COM16~9,第三字节控制COM24~COM17等。值=0表示端口未使用。值=1表示端口被占用。

    推荐文章