![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
gf59ru |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 29.9.2009 Пользователь №: 1126 Спасибо сказали: 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? При этом главное - сразу определить отключение именно НАШЕГО устройства, не проверяя реестры и прочие источники |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 2.10.2023, 4:31 |