Как получить фактический номер COM-порта с помощью SetupDiGetDeviceRegistryProperty - PullRequest
0 голосов
/ 31 октября 2010

Я пытаюсь получить список доступных COM-портов с помощью метода «Windows 2000», описанного здесь:
http://www.codeproject.com/KB/system/setupdi.aspx

Мой текущий код: http://pastebin.ca/1977670
Вот что я получаю:

\\?\ftdibus#vid_0403+pid_6001+ftf479xra#0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
USB Serial Port (COM13)
USB Serial Port

\\?\hdaudio#func_02&ven_11c1&dev_1040&subsys_11c10001&rev_1002#4&ddab605&0&0101#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
Agere Systems HDA Modem
Agere Systems HDA Modem

Я просмотрел различные параметры SetupDiGetDeviceRegistryProperty, но не могу найти подходящий, чтобы получить фактический номер COM-порта. (см. http://msdn.microsoft.com/en-us/library/ff551967(VS.85).aspx)

Я мог бы искать COMXXX под понятным именем (через регулярное выражение или что-то еще ...), но я не думаю, что это будет правильным решением ...

1 Ответ

2 голосов
/ 31 октября 2010

Вы можете использовать SetupDiOpenDevRegKey , чтобы открыть реестр устройства и запросить значение «PortName»; это вернет вам что-то вроде «COM4». Есть еще несколько способов запроса COM-портов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...