Как определить свободный COM порт

186
22 января 2020, 13:20

На компьютере в реестре по следующему пути HKLM:\HARDWARE\DEVICEMAP\SERIALCOMM прописаны два устройства \Device\Serial0 и \Device\Serial1 Следовательно они привязаны каждый к своему COM порту COM1 и COM3, но только к одному из них устройство подключено физически.

Прошу подсказать как в Windows c помощью C# определить какой из этих COM портов свободен, а на каком находится устройство ?

Answer 1

Первое, что пришло в голову, это пробовать Port.Open() в блоке try catch (код с англоязычного форума).

var portNames = SerialPort.GetPortNames();
            foreach (var port in portNames)
            {
                try
                {
                    // открыть порт
                }
                catch
                {
                    // если порт занят, вылетит System.UnauthorizedAccessException
                }
            }
READ ALSO
Ошибка при попытке создать миграцию в консоли диспетчера задач

Ошибка при попытке создать миграцию в консоли диспетчера задач

Не могу создать миграцию в WebApi Обновил PowerShell но вылезла другая ошибка вот она:

177
создание ветки treeview из полного пути к файлу

создание ветки treeview из полного пути к файлу

Пример, есть путь: C:\Users\user\source\repos\test1\testtxt Как из него получить ветку дерева: c:-->Users-->user-->source

150
Проектирование класса

Проектирование класса

Стоит задача парсинга биржи криптовалют в n-потоковЯ сделал все на основе паттерна Singleton, чуть изменив его

115