Последовательные порты - очень простые устройства, начиная с каменного века вычислительной техники. Они не поддерживают Plug & Play, нет никакого способа сказать, что кто-то подключил устройство. Единственное, что вы можете сделать, это узнать, какие порты доступны, SerialPort.GetPortNames () возвращает список. Некоторые эмуляторы USB могут генерировать описательное имя, совпадающее с именем порта, вы можете найти их с помощью WMI, класса Win32_SerialPort.
Ничто из этого не поможет вам определить, какой COM-порт подключен к определенному устройству. Только человек знает, она физически подключила кабель к разъему. Вам нужно будет предоставить интерфейс конфигурации, который позволит пользователю выбрать номер порта. Поле со списком выполняет свою работу. Сохраните выбор в данных конфигурации, вероятно, вероятно, что устройство все еще будет подключено к тому же порту при следующем запуске вашей программы.