Форум: "WinAPI";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c