crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Отслеживание отключения usb-устройств
gf59ru
  опции профиля:
сообщение 29.9.2009, 17:30
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 29.9.2009
Пользователь №: 1126

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

Ситуация следующая:
Имеется устройство USB-Serial, пишем под него программу
Когда прога получает сообщение WM_DEVICECHANGE (приходит только с wParam=DBT_DEVNODES_CHANGED), сразу проверяет реестр (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbser - список подключенных usb-serial устройств и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<****> - описание устройства)

Если устройство пропадает из реестра, значит, пора отключаться от виртуального ком-порта
Это срабатывает, кроме случая, когда usb-шнурок выдернуть и сразу воткнуть
Похоже, реестр просто не успевает обновляться, и отключения от ком-порта не происходит (а без переподключения дальше с ним работа не идёт)

Можно ли как-то определить момент отключения нашего устройства, минуя реестр?
Например, подписаться на сообщение WM_DEVICECHANGE с параметром DBT_DEVICEREMOVECOMPLETE?

При этом главное - сразу определить отключение именно НАШЕГО устройства, не проверяя реестры и прочие источники
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 17:19