Название: Определение списка устройств в Windows Отправлено: gf59 от Сентябрь 25, 2009, 13:29 Всем доброго времени суток!
Имеется устройство, работающее с компом через usb-com т.к. когда оно подключается, в список устройств добавляется Com-порт, и, соответственно, исчезает, когда шнурок выдёргивается. Когда ни одна программа к виртуальному ком-порту не подключена, отслеживать включение-выключение просто - делаешь энумерацию (библиотеками для ком-портов) или смотришь реестр, там изменения появляются сразу же. Но если программа подключена к порту, он не исчезает из списка устройств в реестре и в библиотечных функциях! (хотя диспетчер устройств Windows реагирует моментально) Можно это обойти средствами библиотек? (сейчас использую QSerialDevice) Или может вообще подключиться к каким-нибудь сигналам, показывающим подключение-отключение всех устройств (не только ком-портов)? Название: Re: Определение отключения Com-порта Отправлено: gf59 от Сентябрь 25, 2009, 15:08 Нашёл класс QApplicationExt, обрабатывающий сообщения Windows о подключении/отключении устройств.
Но что именно подключилось, для моего устройства не показывается (идёт сообщение WM_DEVICECHANGE, wParam=DBT_DEVNODES_CHANGED, у которого всегда нулевой lParam) Поэтому сейчас надо получить список usb-устройств (тему http://www.prog.org.ru/topic_10423_0.html не предлагать - у меня не носители информации, а usb-com!) Как это можно сделать в кьюте? ОСь - винда ХР, под другие ОСи не надо пока Название: Re: Определение списка устройств в Windows Отправлено: gf59 от Сентябрь 25, 2009, 18:01 Сам быстрей ответ нашёл :)
В реестре пишутся все устройства Нужная мне ветка - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbser в ней перечисляются устройства usb-com и ветки с полной информацией о них И самое главное, что мне надо - информация здесь не блокируется, когда ком-порт открыт программой, как в ветке HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP |