2010-01-04 114 views

回答

5

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

How do I get the friendly name of a COM port in Windows?

这是寻找友好的名字,但我想你会发现它指向你对注册表的右侧区域,使用“官方”寻找正确密钥的机制。

但是,如果更改端口分配,你也应该更新的COM端口数据库 - 见:https://msdn.microsoft.com/en-us/library/ff546481.aspx

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

如今,您越来越可能遇到可能存在其他不兼容问题的奇怪“非真实”串行端口(例如USB端口),因此您需要谨慎。

+0

Thanks for this。幸运的是,我们遇到的问题涉及到一套完全相同的设备,我们只需要为这种类型的个人电脑提供解决方案。我的同事试图按照下面的建议更改注册表,我们设法使其工作。我会保持你的回应安全,但它为未来的使用提供了宝贵的信息。感谢所有回答这个问题的人。 – SparkyNZ 2010-01-05 01:47:15

1

随口说说,我不知道如何做到这一点,但这里是我会做什么:

使用我的电脑/设备管理器的方法来分配一些不可能的COM端口,如61,然后使用注册表编辑器来搜索为COM61​​,看看设备管理器做了什么。

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

6

我改变COM端口1到110过程中监测注册表变化,发现在以下键修饰:

[HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM] “\设备\的Serial0”= “COM110”

[HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ COM Name Arbiter] “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 \ Device Parameters] “PortName”=“COM110”