【问题标题】:Determine COM-Port number by given PnpDeviceID: Is the DeviceID of a COM-Port device always "COMx"?通过给定的 PnpDeviceID 确定 COM 端口号:COM 端口设备的 DeviceID 是否始终为“COMx”?
【发布时间】:2013-01-25 13:09:34
【问题描述】:

我需要确定即插即用设备的 COM 端口。我有 PnPDeviceID。这是一个蓝牙 USB 加密狗。

因此,我使用 WMI 检索有关设备的信息,如第一个示例 at this website。 WMI 查询的结果包含一个属性“DeviceID”,它是一个字符串。我的值是“COM3”。

我得到相同的值,当我这样做时(而不是使用 WMI)

string[] names = System.IO.Ports.SerialPort.GetPortNames();

现在我想知道,如果 COM-Devices 的 DeviceId 总是具有“COMx”格式?我实际上需要一个名为“Port”的属性,其值为整数。

还有另一种方法,检查注册表,但我不知道是否建议这样做。

【问题讨论】:

  • 这是一个驱动实现细节。他们可以随心所欲地命名它,但是,当然,他们将其命名为“COMx”是很常见的。这个数字没有任何意义,所以最好让用户从列表中选择。
  • @SonerGönül 我几乎可以通过 WMI 获得这些信息。但是没有int Port

标签: c# serial-port wmi device-manager


【解决方案1】:

参见 Hans Passant 的评论。它们通常被命名为 COMx。你应该让用户选择。

对我来说更重要的是:通常没有必要将 com 端口号作为整数获取,因为 Com-port 名称(字符串)被广泛用作标识符,例如与 System.io... 他们采用字符串“COM3”或驱动程序特定名称。

【讨论】:

    猜你喜欢
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2011-01-10
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多