C # как изменить COM-порт на указанный - PullRequest
1 голос
/ 10 января 2012

Мне нужно изменить номер порта последовательного USB-адаптера, у меня есть следующий список, чтобы найти его, теперь мне нужно изменить его portName / COM Number на COM11, например.

Мне нужно именно это, но по коду C #:

Мой компьютер -> Управление -> Диспетчер устройств -> Порты -> Порт связи -> Настройки порта -> Дополнительно -> Номер COM-порта


        try
        {
            ManagementObjectSearcher searcher =
                new ManagementObjectSearcher("root\\WMI",
                "SELECT * FROM MSSerial_PortName");

            foreach (ManagementObject queryObj in searcher.Get())
            {
                //If the serial port's instance name contains USB 
                //it must be a USB to serial device
                if (queryObj["InstanceName"].ToString().Contains("USB"))
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("MSSerial_PortName instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("InstanceName: {0}", queryObj["InstanceName"]);
                    Console.WriteLine(queryObj["PortName"] + "is a USB to SERIAL adapter/converter");
                    string port = queryObj["PortName"].ToString();
                    SerialPort p = new SerialPort(port);
                    //p.PortName = "COM11";
                    return port ;
                }
            }

            throw new Exception(Messages.PINPAD_NOT_FOUND);
        }

1 Ответ

1 голос
/ 12 января 2012

Я не думаю, что переименование com-порта доступно в wmi.С технической точки зрения конфигурация, на которую вы указываете, изменяет символьную ссылку , присоединенную к драйверу.Я думаю, что это выполнимо, но вы должны посмотреть это в DDK (возможно, в WDM).

Насколько я знаю, правильное решение для вашей программы - это возможность адаптироваться под любым именемоборудование было назначено.Вы должны сохранить правильное имя порта в конфигурационном файле или где-нибудь в реестре и позволить пользователю настроить его.

...