首页 文章

如何获取有关Windows中串行(COM)端口的特定信息?

提问于
浏览
4

由于我安装了数十个虚拟串行(COM)端口,其中一半是蓝牙设备,我想知道哪个端口属于哪个设备,以及它是直接连接还是通过蓝牙连接 .

所以特别是我对所有串口的简单枚举不感兴趣,它只会显示相应数字的'COM'列表,但是该设备的真实名称和可能的设备ID(可以找到有关的信息)这是通过USB还是蓝牙连接 .

虽然我可以通过WMI获取这些信息,但是有很多与此方法相关的问题 . 特别是它的速度很慢,但它也只列出了连接的设备(蓝牙设备除外,可能会连接并显示,无论真正的连接如何)

我更喜欢用Delphi / Object Pascal编写的解决方案,但是对我来说任何其他语言都没问题(WMI访问代码是从C#复制的) .

1 回答

  • 6

    如果您使用可以读取注册表的编程语言/ API,请检查子树 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum .

    这个子键包含设备类型,设备类,实例ID . 每个实例ID都有一个具有COM名称的子项 Device Parameters\PortName .

    例如,在我的系统上

    ACPI\PNP0501\1\Device Parameters\PortName = COM1
    BTHENUM\{GUID}{ID}\Device Parameters\PortName = COM4
    

    例如,ID部件中的键具有附加信息

    ACPI\PNP0501\1\FriendlyName = Kommunikationsanschluss (COM1)  (german windows)
    ACPI\PNP0501\1\Service = Serial
    BTHENUM\{GUID}{ID}\Service = BTHMODEM
    

    使用regedit检查您自己感兴趣的部分 . 但这应该会为您提供所需的所有信息 .

相关问题