gpt4 book ai didi

c# - 从蓝牙设备获取错误的串行端口名称 (c#)

转载 作者:太空狗 更新时间:2023-10-29 21:55:56 24 4
gpt4 key购买 nike

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

SerialPort.GetPortNames

它在主板串行端口上工作正常,但在蓝牙设备上我得到了错误的端口名称。

例如:有时我得到的不是 COM7,而是 COM70 或 COM7ö。它总是 1 个字母太多。

有什么建议吗?

PS:我在 Windows 7 中使用最新的 Visual Studio ExpressPPS:剪切最后一个字母的肮脏黑客没有用,因为我不知道哪个是蓝牙串行端口(使用各种蓝牙棒或设备它会改变 comport 的数量)并且在尝试各种棒后我到达了 COM10,人机工程学 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);
}
}
}

通常第二个或第三个请求的结果类似于

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

怎么可能呢?

最佳答案

这是 reported as a bug非空终止字符串:

你能手动遍历注册表吗?

HKLM\Hardware\DeviceMap\SerialComm

关于c# - 从蓝牙设备获取错误的串行端口名称 (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com