Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting wrong serial-port names from bluetoothdevice (c#)

To get all avaliable Serialports from the system i use the following command.

SerialPort.GetPortNames

It works fine for the mainboard serial port, but with the bluetooth device i get the wrong portnames.

For Example: Instead of COM7 i get sometimes COM70 or COM7ö. Its always 1 letter to much.

any suggestens?

PS: I am using newest Visual Studio Express in Windows 7 PPS: The dirty hack to cut the last letter didn't work because i don't know which one is the bluetooth serial port (with various bluetoothstick or devices it changes the number of the comport) and after trying various sticks i reached COM10, ergo COM100 or COM10f

EDIT: the code i am using right now. reading the regestry, but still the same problem.

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);
        }
    }
} 

Normally the second or third request is working with a result like

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

how can that be?

like image 425
wurlog Avatar asked Mar 26 '10 11:03

wurlog


1 Answers

This has been reported as a bug with non-null terminated strings:

Can you manually walk the registry?

HKLM\Hardware\DeviceMap\SerialComm
like image 109
Chris Haas Avatar answered Oct 29 '22 15:10

Chris Haas