从bluetoothdevice获取错误的串口名称(c#)

wur*_*log 6 c# serial-port bluetooth

要从系统中获取所有可用的串行端口,请使用以下命令.

SerialPort.GetPortNames
Run Code Online (Sandbox Code Playgroud)

它适用于主板串口,但使用蓝牙设备我得到了错误的端口名.

例如:有时COM70或COM7ö代替COM7.它总是1个字母.

任何建议?

PS:我在Windows 7 PPS中使用最新的Visual Studio Express:切断最后一个字母的脏黑客不起作用,因为我不知道哪一个是蓝牙串口(带有各种蓝牙键或设备,它改变了数量尝试各种棍子后,我到达COM10,ergo COM100或COM10f

编辑:我正在使用的代码.阅读regestry,但仍然是同样的问题.

RegistryKey myRegistry = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");
foreach (string valuename in myRegistry.GetValueNames())
{
    if (myRegistry.GetValue(valuename) is String)
    {
        if (valuename.Contains("BthModem"))
        {
            richTextBox1.AppendText(">" + myRegistry.GetValue(valuename) + "<" + Environment.NewLine);
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

通常,第二个或第三个请求正在使用类似的结果

COM11ᯋ<COM10S <COM11 <COM10 <COM11 <COM10 <

怎么可能?

M.A*_*nin 0

您可以利用 WMI 查询系统的串行端口,包括由蓝牙设备和 USB 转串行设备添加的串行端口。也许这样你就不会遇到这个问题了。请参阅CodeProject