Um alle verfügbaren Serialports aus dem System zu erhalten, verwende ich den folgenden Befehl.
SerialPort.GetPortNames
Für die serielle Schnittstelle des Mainboards funktioniert es gut, aber mit dem Bluetooth-Gerät erhalte ich die falschen Portnamen.
Zum Beispiel: Anstelle von COM7 erhalte ich manchmal COM70 oder COM7ö. Es ist immer 1 Buchstabe zu viel.
irgendwelche Vorschläge?
PS: Ich verwende das neueste Visual Studio Express unter Windows 7 PPS: Der schmutzige Hack, um den letzten Buchstaben abzuschneiden, hat nicht funktioniert, weil ich nicht weiß, welches der serielle Bluetooth-Anschluss ist (mit verschiedenen Bluetooth-Sticks oder -Geräten ändert sich die Nummer des Anschlusses) und nachdem ich verschiedene Sticks ausprobiert habe, bin ich zu COM10, ergo COM100 oder COM10f gekommen
EDIT: der Code, den ich gerade verwende. Ich lese die Regestry, aber immer noch das gleiche 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);
}
}
}
Normalerweise arbeitet die zweite oder dritte Anfrage mit einem Ergebnis wie
COM11< COM10S< COM11< COM10< COM11< COM10<
Wie kann das sein?