Чтобы получить все доступные Serialports из системы, я использую следующую команду.
SerialPort.GetPortNames
Он отлично работает для последовательного порта материнской платы, но с устройством Bluetooth я получаю неправильные имена портов.
Например: вместо COM7 я иногда получаю COM70 или COM7ö. Его всегда 1 письмо многим.
есть предложения?
PS: я использую новейшую Visual Studio Express в Windows 7
PPS: грязный хак, чтобы вырезать последнюю букву, не сработал, потому что я не знаю, какой из них является последовательным портом bluetooth (с различными bluetoothstick или устройствами это меняет номер компорта), и после попытки различных палочек я достиг COM10, ergo COM100 или COM10f
РЕДАКТИРОВАТЬ: код, который я использую прямо сейчас. чтение повторного теста, но все та же проблема.
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 <</p>
как это может быть?