реклама на сайте
подробности

 
 
> Отследить подключение USB устройства, C Builder 2007
toweroff
сообщение Oct 18 2013, 13:20
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день

Сейчас есть программа, которая ищет в списке USB устройств свое, захватывает интерфейс, работает с ним и "отпускает"
Теперь хотелось бы, чтобы можно было подключить несколько устройств одновременно и, соответственно, для каждого устройства - своя копия программы
В такой ситуации уже не обойтись без обработчика системных событий. Подскажите, как это правильно делается?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Oct 18 2013, 16:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Разобрался, но не совсем...

Везде в просторах гугла WParam == 0x8000 (DBT_DEVICEARRIVAL), то есть устройство подключено и прошло энумерацию
События я ловлю в количестве 5шт при подключении и 1шт - при отключении устройства
Странно, но везде значение WParam - 0x07!



Еще наблюдение. Подключая USB накопитель, событие DBT_DEVICEARRIVAL я все-таки ловлю.
Переходники всякие USB-COM, J-Link, ULINK2, USB-Blaster - нет такого события sad.gif
как все-таки однозначно определить завершение энумерации и присутствие USB устройства в системе?

Кстати, http://msdn.microsoft.com/en-us/library/wi...0(v=vs.85).aspx ничего не говорит о WParam==0x07


И еще дополнение.
Т.к. мое устройство работает от LibUsb, то и копать нужно оттуда
Если кому будет нужно - http://www.cs.unm.edu/~hjelmn/libusb_hotpl...pi/hotplug.html

Можно закрыть
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Oct 18 2013, 19:11
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Цитата(toweroff @ Oct 18 2013, 20:16) *
...
Странно, но везде значение WParam - 0x07!
...
Кстати, http://msdn.microsoft.com/en-us/library/wi...0(v=vs.85).aspx ничего не говорит о WParam==0x07

Почему не говорит? как раз говорит
DBT_DEVNODES_CHANGED 0x0007 -A device has been added to or removed from the system.

И вот тут полезное.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 12:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016