Russian Qt Forum
Сентябрь 22, 2024, 16:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Определение списка устройств в Windows  (Прочитано 6339 раз)
gf59
Гость
« : Сентябрь 25, 2009, 13:29 »

Всем доброго времени суток!

Имеется устройство, работающее с компом через usb-com
т.к. когда оно подключается, в список устройств добавляется Com-порт, и, соответственно, исчезает, когда шнурок выдёргивается.

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

Но если программа подключена к порту, он не исчезает из списка устройств в реестре и в библиотечных функциях! (хотя диспетчер устройств Windows реагирует моментально)

Можно это обойти средствами библиотек? (сейчас использую QSerialDevice)
Или может вообще подключиться к каким-нибудь сигналам, показывающим подключение-отключение всех устройств (не только ком-портов)?
« Последнее редактирование: Сентябрь 25, 2009, 15:31 от gf59 » Записан
gf59
Гость
« Ответ #1 : Сентябрь 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!)

Как это можно сделать в кьюте?
ОСь - винда ХР, под другие ОСи не надо пока
Записан
gf59
Гость
« Ответ #2 : Сентябрь 25, 2009, 18:01 »

Сам быстрей ответ нашёл Улыбающийся
В реестре пишутся все устройства
Нужная мне ветка - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbser
в ней перечисляются устройства usb-com и ветки с полной информацией о них

И самое главное, что мне надо - информация здесь не блокируется, когда ком-порт открыт программой, как в ветке HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 21.