Aby uzyskać wszystkie dostępne numery seryjne z systemu, używam następującego polecenia.Otrzymywanie błędnych nazw portów szeregowych z urządzenia bluetoothdevice (C#)
SerialPort.GetPortNames
Działa dobrze dla portu szeregowego płyty głównej, ale z urządzeniem bluetooth otrzymuję złe nazwy portów.
Na przykład: Zamiast COM7 otrzymuję czasami COM70 lub COM7. To zawsze 1 litera za dużo.
jakieś sugestie?
PS: Używam najnowszego programu Visual Studio Express w systemie Windows 7 PPS: brudny hack do wycięcia ostatniej litery nie działa, ponieważ nie wiem, który to port szeregowy bluetooth (z różnymi urządzeniami bluetoothstick lub urządzeniami zmienia numer komportu) i po wypróbowaniu różnych patyków osiągnąłem COM10, ergo COM100 lub COM10f
EDYCJA: kod, którego używam właśnie teraz. czytanie regestry, ale wciąż ten sam 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);
}
}
}
Zwykle drugi lub trzeci żądania pracy z wynikiem podobnego
COM11ᯋ < COM10S < COM11 < COM10 < COM11 < COM10 <
h ow to może być?
nie działa w moim środowisku. System.Managment nie został znaleziony. Może to nie jest część edycji ekspresowej? – wurlog