Добрый день!
Проблема такая — при подключении нового устройства(в моем случае интересуют подключения USB-устройств) нужно не давать запуститься стандартному Wizard-у Windows. Идея была такая — получать уведомления о подключении устройств отловом сообщений WM_DEVICECHANGE и DBT_DEVICEARRIVAL глобальным хуком. Глобальный хук работает на ура, все новые подключения отлавливаются, но проблема в том, что CALLBACK-функция хука является ИНФОРМИРУЮЩЕЙ, т.е. перехватить и ОТМЕНИТЬ сообщение WM_DEVICECHANGE нельзя
Вот отрывки из NSDN:
1)
The WM_DEVICECHANGE device message notifies an application of a change to the hardware configuration of a device or the computer.
A window receives this message through its WindowProc function
2)
SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, hInstance, 0);
WH_CALLWNDPROC and WH_CALLWNDPROCRET Hooks
The WH_CALLWNDPROC and WH_CALLWNDPROCRET hooks enable you to monitor messages sent to window procedures. The system calls a WH_CALLWNDPROC hook procedure before passing the message to the receiving window procedure, ...
3)
Remarks
The CallWndProc hook procedure can examine the message, but it cannot modify it. After the hook procedure returns control to the system, the message is passed to the window procedure
Как мне быть в моем случае с запретом Found New Hardware Wizard-а? Я так понимаю, что когда окно эксплорера получает сообщение WM_DEVICECHANGE, оно показывает ненужный мне Wizard? Может подмена процедуры окна каким либо образом поможет?
Заранее спасибо за любые советы и помощь.
Здравствуйте, Aleksej_A, Вы писали:
A_A>Добрый день!
A_A>Проблема такая — при подключении нового устройства(в моем случае интересуют подключения USB-устройств) нужно не давать запуститься стандартному Wizard-у Windows.
Ну например попробовать тормознуть службу Plug and Play, минус что не только USB устройств это коснётся...
Здравствуйте, FirstStep, Вы писали:
FS>Здравствуйте, Aleksej_A, Вы писали:
A_A>>Добрый день!
A_A>>Проблема такая — при подключении нового устройства(в моем случае интересуют подключения USB-устройств) нужно не давать запуститься стандартному Wizard-у Windows.
FS>Ну например попробовать тормознуть службу Plug and Play, минус что не только USB устройств это коснётся...
Да, это решение не очень
Может еще какие идеи будут ... ?
Здравствуйте, Aleksej_A, Вы писали:
A_A>Да, это решение не очень
A_A>Может еще какие идеи будут ... ?
Решилась проблемка? А то у меня практически такая же задача. Пока я нашел выход только в программном USB — фильтре. Продаётся в инете.