Как найти последний COM-порт, созданный на моем компьютере?

Как найти последний виртуальный COM-порт, созданный на моем ПК??

диспетчер устройств -> порты -> имя устройства ( COM X ).

Как программно найти этот "COM x"?


person 2vision2    schedule 24.04.2012    source источник
comment
Последняя версия не дает никакой гарантии, что вы действительно хотите использовать этот порт. Создайте список с WMI, классом Win32_SerialPort и позвольте пользователю выбрать правильный. И да, именно поэтому виртуальные COM-порты довольно плохи.   -  person Hans Passant    schedule 24.04.2012
comment
извините, я могу определить последний созданный COMX???   -  person 2vision2    schedule 24.04.2012
comment
Да, вы можете найти их программно, но найти на основе чего? Вы не можете полагаться на какой-то конкретный порядок. Если это пользовательское устройство, вы можете фильтровать его по поставщику и идентификатору устройства или, возможно, по пользовательскому имени.   -  person Deanna    schedule 24.04.2012
comment
да, у меня есть конкретный идентификатор поставщика и идентификатор устройства. Но как я могу достичь этих учетных данных программно.. я новичок.. не могли бы вы объяснить подробно ››   -  person 2vision2    schedule 24.04.2012


Ответы (2)


Посмотрите на SetupApi, в частности SetupDiEnumDeviceInfo() и CM_Get_Device_ID() функции.

Этот проект содержит пример кода, показывающий использование.

person Deanna    schedule 24.04.2012

«Дата установки» — это одно из свойств на вкладке сведений на странице свойств оборудования в диспетчере устройств.

Я ожидал, что смогу найти для него ключ в реестре:

HKLM\SSYSTEM\CurrentControlSet\Enum\...

Но ключа нет, по крайней мере, я не могу его найти.

Будет ли достаточно поиска по VendorID + DeviceID/ProductID?

person jon    schedule 24.04.2012
comment
я хочу указать конкретный comX в качестве входных данных при создании подключения к локальной сети.. так могу ли я найти конкретный COMx программно?? - person 2vision2; 24.04.2012