Как сканировать COM-порты в C #? - PullRequest
10 голосов
/ 31 марта 2010

Предоставляет ли C # эффективный способ сканирования доступных COM-портов? Я хотел бы иметь раскрывающийся список в моем приложении, где пользователь может выбрать один из обнаруженных COM-портов. Создание и заполнение выпадающего списка не является проблемой. Мне просто нужно знать, как сканировать доступные COM-порты с помощью C #. Я использую Microsoft Visual C # 2008 Express Edition. Спасибо.

Ответы [ 2 ]

16 голосов
/ 31 марта 2010

System.IO.Ports - это желаемое пространство имен.

SerialPort.GetPortNames выведет список всех последовательных COM-портов.

К сожалению, параллельные порты не поддерживаются напрямую из C #, так как они очень редко используются, за исключением устаревших ситуаций. Тем не менее, вы можете перечислить их, запросив следующий раздел реестра:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS

Подробнее см. Пространство имен Microsoft.Win32 .

2 голосов
/ 31 марта 2010

Используйте WMI через пространство имен System.Management. Быстрый Google находит этот код:

using System;
using System.Management;

public class Foo 
{
    public static void Main() 
    {
       var instances = new ManagementClass("Win32_SerialPort").GetInstances();
       foreach ( ManagementObject port in instances )
       {
           Console.WriteLine("{0}: {1}", port["deviceid"], port["name"]);
       }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...