通过给定的PnpDeviceID确定COM端口号:COM端口设备的DeviceID是否始终为“COMx”?

问题描述:

我需要确定即插即用设备的COM端口。我有PnPDeviceID。这是一个蓝牙USB加密狗。通过给定的PnpDeviceID确定COM端口号:COM端口设备的DeviceID是否始终为“COMx”?

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

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

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

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

还有另一种方法,去注册表,但我不知道,如果这是建议。

+0

这是一个驱动程序实现细节。他们可以将其命名为任何他们想要的东西,但是,当然,这很常见,他们将其命名为“COMx”。数字没有意义,所以最好让用户从列表中选择。 –

+0

可帮助http://msdn.microsoft.com/en-us/library/aa394413%28VS.85%29.aspx –

+0

@SonerGönül我几乎克服WMI的信息。但是没有'int Port' – OneWorld

查看Hans Passant的评论。它们通常被命名为COMx。你应该让用户选择。因为Com端口名(字符串)被广泛地用作标识符,所以通常不需要将com端口号设置为整数。与System.io ...他们采取字符串“COM3”或驱动程序的具体名称。