На компьютере в реестре по следующему пути HKLM:\HARDWARE\DEVICEMAP\SERIALCOMM прописаны два устройства \Device\Serial0 и \Device\Serial1 Следовательно они привязаны каждый к своему COM порту COM1 и COM3, но только к одному из них устройство подключено физически.
Прошу подсказать как в Windows c помощью C# определить какой из этих COM портов свободен, а на каком находится устройство ?
Первое, что пришло в голову, это пробовать Port.Open() в блоке try catch (код с англоязычного форума).
var portNames = SerialPort.GetPortNames();
foreach (var port in portNames)
{
try
{
// открыть порт
}
catch
{
// если порт занят, вылетит System.UnauthorizedAccessException
}
}
Продвижение своими сайтами как стратегия роста и независимости