Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

WM_DEVICECHANGE - отлов подключения/отключения USB-устройства   Найти похожие ветки 

 
Nickolay ©   (2005-12-16 15:49) [0]

Цель: отловить момент подключения устройства к USB-порту, чтобы, допустим,
открыть этот порт (для FTDI-устройств), сообщить оператору, запустить
какую-либо программу и т. п...

Обрабатываю сообщение WM_DEVICECHANGE.

procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE;

...

procedure TForm1.WMDeviceChange(var Message: TMessage);

begin
// смотрим что нам пришло...
 Memo1.Lines.Add("Получено сообщение с кодом " +
IntToStr(Message.wParam));
...
 Inherited;
end;

Но! Допустим, пробую подключать накопитель Flash-памяти обычный.
Приходят:
1) три сообщения с кодом 7
задержка ~1-2 сек
2) два сообщения с кодом 7
3) одно сообщение с кодом 32768 (устройство включено и доступно)
4) одно сообщение с кодом 7

Отключаю тот же накопитель.
Приходят:
1) три сообщения с кодом 7
2) одно сообщение с кодом 32772 (устройство удалено).

Далее.
Подключаем устройство на FT245BM.
Приходят:
1) одно сообщение с кодом 7
задержка ~3 сек
2) одно сообщение с кодом 7

Отключаем устройство на FT245BM.
Приходят:
1) одно сообщение с кодом 7

Почему так много сообщений?!
О чём говорит такое количество сообщений?
Что за сообщение с кодом 7? Описание его я не нашёл!

Помогите, пожалуйста! Я в замешательстве.

Спасибо!


 
clickmaker ©   (2005-12-16 16:16) [1]

/*
* Message = WM_DEVICECHANGE
* wParam  = DBT_DEVNODES_CHANGED
* lParam  = 0
*
*      send when configmg finished a process tree batch. Some devnodes
*      may have been added or removed. This is used by ring3 people which
*      need to be refreshed whenever any devnode changed occur (like
*      device manager). People specific to certain devices should use
*      DBT_DEVICE* instead.
*/

#define DBT_DEVNODES_CHANGED            0x0007


 
Nickolay ©   (2005-12-16 16:44) [2]

Да-да-да... спасибо!
Про DBT_DEVNODES_CHANGED я уже почитал. Но, непонятно, что будет с этим кодом в Win98?! Это сообщение просто не придёт или придёт с другим кодом? Т. е., если я хочу, чтобы моё приложение работало и под XP и под 98, то я не должен обрабатывать сообщение с параметром 7?

Я не понимаю почему приходит так много семёрок и что с ними делать :)

Почему для FLASH Windows помимо 7 генерит ещё 32768 и 32772, а для FT только 7?!



Страницы: 1 вся ветка

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
15-1139161550
Джо
2006-02-05 20:45
2006.03.05
Ищу: Графоманский сайт


2-1140342723
Ольга
2006-02-19 12:52
2006.03.05
Сортировка набора данных, возвращаемого хранимой процедурой


15-1139839786
Интересующийся
2006-02-13 17:09
2006.03.05
Borland отказывается от развития


1-1138859717
денвер
2006-02-02 08:55
2006.03.05
Работа с компонентом Edit


2-1140072645
Bratskiy
2006-02-16 09:50
2006.03.05
TTreeView вставка объекта