| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как отловить подключение съемного носителя |
| Автор: WolfAlone 25.1.2010, 12:20 |
| Здравствуйте! Собственно сабж! Интересует вопрос, как отловить событие подключение CD/DVD, "флэшек" и пр. съемных носителей к системе на Windows XP/Vista. P.S. Аналогичные действия проводит антивирус Касперского, при вставке "флэшки" - появляется окно, с надписью типа "Обнаружен съёмный диск" |
| Автор: WolfAlone 25.1.2010, 12:37 |
| Перелопатил гору информации, но так и нигде не нашёл внятного объяснения что к чему... Вариант исходника на 1000+ строк кода, без комментариев, который ещё к тому же и не компилируется - меня в корне не устроил! Подскажите пожалуйста, кто знает толковую информацию по этому поводу, в которой было бы всё подробно расписано! |
| Автор: kami 25.1.2010, 14:02 |
| Имхо, начать надо с этого: http://msdn.microsoft.com/en-us/library/aa363431(VS.85).aspx Вполне возможно, уже есть готовые компоненты/классы... |
| Автор: WolfAlone 25.1.2010, 14:13 |
| Может быть кто-нибудь обладает уже готовым модулем для перехвата события подключения "флэшки" в ПК? (USB) |
| Автор: WolfAlone 25.1.2010, 16:50 |
| Почитал про "RegisterDeviceNotification", почитал про "WM_DEVICECHANGE"... Скажите пожалуйста, может кто-нибудь встречал подробное описание этих функций на русском языке? |
| Автор: transserg 25.1.2010, 17:24 |
| WolfAlone в аттаче проект с примером в мемо выводи букву подключенного диска=) |
| Автор: WolfAlone 25.1.2010, 18:06 |
| Уважаемый transserg, спасибо огромное! Получил именно то, что нужно. Реагирует даже на воткнутые диски, это очень хорошо! Теперь остался последний вопрос, по поводу того, как бы почитать внятную документацию на родном языке что куда и к чему в этом исходнике |
| Автор: transserg 25.1.2010, 18:17 | ||
| WolfAlone все где я это иска это DRKB и MSDN+Translate.google.ru а вообще в сообщении WM_DEVICECHANGE WParam это константа например DBT_DEVICEARRIVAL что говорит о том что было подключено новое устройство а в lParam содержится указатель на сруктуру в нашем случае это http://msdn.microsoft.com/en-us/library/aa363249(VS.85).aspx
|
| Автор: kami 26.1.2010, 00:19 |
Я прошу прощения за |
| Автор: Keeper89 26.1.2010, 02:09 |
| Я уже сам http://forum.vingrad.ru/forum/topic-276108/unread-1/kw-devicechange-usb.html заводил эту тему |
| Автор: ~FoX~ 26.1.2010, 09:20 |
| WM_DEVICE_CHANGE, дома есть рабочий пример, есле еще будет актуально скину код в тему поле 18.00 по московскому времени |
| Автор: WolfAlone 26.1.2010, 11:51 |
| Уважаемый ~FoX~ буду признателен за любые примеры и помощь. Можно в принципе по мимо дельфи примеры на С++, не суть |
| Автор: ~FoX~ 26.1.2010, 18:01 | ||
Вот, как и обещал, рабочий код, ловит все и флешки и сд и даже подключение сетевого драйва...
|
| Автор: WolfAlone 26.1.2010, 18:22 |
| Спасибо всем огромное! Разобрался чуть по чуть, задно подтянул знания WinAPI. Как выяснилось, в константах со значениями типа "$8000" в принципе нет необходимости, это скорее удобство. А в С++ как оказалось, даже есть заголовочный файл со всеми этими константами... Осталось ещё чуть покумекать, глядишь ещё чуть поумнею |
| Автор: ~FoX~ 26.1.2010, 18:35 | ||
В принципе во всех константах нету необходимости |