![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Доброго времени суток!
Взял вот этот код для работы с USB-устройством. Как можно добавить в него определение буквы вставленного устройства, например флешки? И что делать. если оно составное? Заранее спасибо. Это сообщение отредактировал(а) Keeper89 - 11.10.2009, 00:05 |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
Так определяется буква драйва....А что значит составное? |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Спасибо, тоже нашел этот код сегодня.
![]() Составное - это например вставка кардридера, где устройство одно, а разделов может быть несколько. Это сообщение отредактировал(а) Keeper89 - 11.10.2009, 10:20 |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
Keeper89, Теоретически пофигу должно быть, этот код ловит не только USB но и сидюки, пробовал вставлять одновременно - ловица по очереди...К сожалению кардридера нету, но скорее всего должно последовательно поймаца... Если проверишь, сообщи результаты, самому интересно стало
![]() З.Ы.: Нашел...странно, я его сам по МСДН-у писал... ![]() Это сообщение отредактировал(а) ~FoX~ - 11.10.2009, 11:20 |
|||
|
||||
Keeper89 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Вот тут моя находка.
Ага. твой код ловит все, а тот что у Snowy - только USB. т.к. для этого при создании регистрируется специальный отлов. Поэтому я и думаю, как определить букву диска после определения именно USB. Пробовал сначала так (определить букву не важно какого девайса):
Но судя по всему условие devType = DBT_DEVTYP_VOLUME не выполняется при вставе флешки. ![]() Это сообщение отредактировал(а) Keeper89 - 11.10.2009, 11:33 |
||||
|
|||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
Keeper89, Счаз нету компилера, но кто мешает отдибагить код и посмотреть, что собственно попадает в dbcv_devicetype при вставлении флехи?
А dbcv_devicetype - это ж логическая метка диска.... http://forum.vingrad.ru/faq/topic-157620.html |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Добавил в компонент список, содержащий подсоединенные флеш-драйвы:
Единственная проблема - флешка при вставке определяется как бы с запозданием. Т.е. при вставке диска (в событии OnUSBArrival) в списке нового драйва нет, но если обратится к списку позже (через секунду, например), он будет в списке. ![]() ![]() Вот, в чем я не прав? ![]() Это сообщение отредактировал(а) Keeper89 - 13.10.2009, 13:17 |
|||
|
||||
Keeper89 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
При этом, если заменить
на
и аналогично для извлечения флешки - буква в сообщении отображается. ![]() З.Ы. Тоже самое происходит, если переделать компонент в класс. Это сообщение отредактировал(а) Keeper89 - 13.10.2009, 14:02 |
||||
|
|||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
Keeper89, Что не очень понял в чем собственно проблема....Повесь на OnUSBArrival и на OnUSBRemove по мессаге, что то мне подсказывает что оно срабатывает подряд....
|
|||
|
||||
Keeper89 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
~FoX~, повесил. Сообщения высвечиваются в такой последовательности:
Т.е. каждое событие по 2 раза. При этом буква определяется позже исходя из сообщений. З.Ы. Я работаю не с компонентом. а с классом. На всякий случай его код:
Это сообщение отредактировал(а) Keeper89 - 14.10.2009, 21:04 |
||||
|
|||||
lkz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
у меня при добавлении этого компонента в delphi возникает ошибка в строке:
FWindowHandle := AllocateHWnd(WndProc); - что это такое? Она нигде не объявлена |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
lkz, какая ошибка? Это сообщение отредактировал(а) ~FoX~ - 13.3.2011, 01:44 |
|||
|
||||
lkz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
AllocateHWnd(WndProc); -
и deAllocateHWnd(WndProc); - ? |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
В uses добавь Classes
|
|||
|
||||
lkz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
Classes - прописывается Delphi. - у меня он стоит
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |