Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
#1

Как отследить момент отключения флэшки

21.04.2012, 22:45. Просмотров 1603. Ответов 19
Метки нет (Все метки)

C++
1
2
void __fastcall TForm1::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
так мы ловим флэшки, а как поймать отключения флэшки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 22:45
Ответы с готовыми решениями:

Оследить момент появления флэшки в проводнике.
Как отловить момент появления дисков в проводнике а не в системе? UINT...

Drag&drop файлов. Отследить момент перетаскивания.
Юзер перетаскивает файл на форму. Кнопку мыши пока не отпустил. Как...

TComboBox: отследить момент клика по компоненту и ухода с него без выбора значения из списка
у меня есть TComboBox хочу поймать момент когда пользователь кликнет по...

Как отследить не активность пользователя в приложении
нужно чтобы программа при простое 30 сек выполняла некоторые действия. Тоесть,...

Как отследить событие разворачивания фомры
Как отследить событие разворачивания фомры, если перед этим она была свернута? ...

19
LK
Заблокирован
21.04.2012, 22:52 #2
Проверка наличия диска в системе
C++
1
2
3
4
5
// Напишите следующуй код:
if(GetDriveType("F:\\") == DRIVE_NO_ROOT_DIR)
MessageBox(NULL, "Указанного диска в системе нет!", "Внимание!", MB_OK | MB_ICONEXCLAMATION);
else
MessageBox(NULL, "Указанный диск есть в системе!", "Внимание!", MB_OK | MB_ICONINFORMATION);
1
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
21.04.2012, 22:59  [ТС] #3
LK, так не подойдет, нужно на автоматическом уровне.что бы при извлечении флэшки обновлялся ComboBox1
0
LK
Заблокирован
21.04.2012, 23:04 #4
не это ли - WMDeviceChange:
Реакция на флешку
1
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
21.04.2012, 23:09  [ТС] #5
Наверно номер 8004Спасибо буду побывать
0
LK
Заблокирован
21.04.2012, 23:10 #6
C++
1
0х8004
1
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
21.04.2012, 23:13  [ТС] #7
Цитата Сообщение от LK Посмотреть сообщение
0х8004
Там пример на Delphi
C++
1
2
void __fastcall TForm1::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8004 ) {
Вот так наверно?
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,350
Записей в блоге: 17
22.04.2012, 00:12 #8
Ну думаю стоит просто поиксперементировать

В устройстве нет диска. Вставьте диск в устройство
2
Миниатюры
Как отследить момент отключения флэшки  
Dondok
18 / 34 / 2
Регистрация: 28.01.2012
Сообщений: 181
22.04.2012, 20:28 #9
думаю в сторону функций SetupDI*** надо смотреть. Например перечисляешь все устройства на своем компе и сохраняешь в Memo1. Далее при отлове сообщения WM_DEVICECHANGE опять перечисляешь устройства на компе и сравниваешь с Memo1. Тут уже не только USB можно отслеживать, а все устройства

Добавлено через 1 минуту
недавно я писал насчет аппаратного серийника. там перечисляют все устройства на компе.Щас найду

Добавлено через 1 минуту
вот тема: Аппаратный серийный номер флешки (как долго я искал)
1
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
26.04.2012, 23:40  [ТС] #10
Цитата Сообщение от Avazart Посмотреть сообщение
Ну думаю стоит просто поиксперементировать
Не 8004 не 32772, Есть другие идеи?

Добавлено через 2 часа 11 минут
а хотя, это гласит о другом
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,350
Записей в блоге: 17
26.05.2012, 01:29 #11
0x8004(hex) = 32772(dec)
1
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
26.05.2012, 01:59  [ТС] #12
Avazart, работает отключение)
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,350
Записей в блоге: 17
26.05.2012, 02:24 #13
Avazart, работает отключение)
непонял ?
0
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
26.05.2012, 02:34  [ТС] #14
Цитата Сообщение от Avazart Посмотреть сообщение
0x8004(hex) = 32772(dec)
этим кодом ловим отключение флэшки)
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,350
Записей в блоге: 17
26.05.2012, 02:53 #15
Ну да а подключение
0x8000 = 32768.
Ну еще там проскакивает код 7
0
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
26.05.2012, 03:05  [ТС] #16
Вот лог
Код
7
7
7
7
32768
26.05.2012 2:02:38  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:38  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:38  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:38  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:38  -  Подключен накопитель: (F:) A3cam
26.05.2012 2:02:38  - Защита уже установлена на диск: (G:)
26.05.2012 2:02:38  - Защита уже установлена на диск: (G:)
26.05.2012 2:02:38  -  Подключен накопитель: (G:) DVD
7
7
7
7
32772
26.05.2012 2:02:43  -  USB-накопитель отключен
7
7
7
7
7
32768
26.05.2012 2:02:47  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:47  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:47  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:47  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:47  -  Подключен накопитель: (F:) A3cam
7
7
7
7
32772
26.05.2012 2:02:47  -  USB-накопитель отключен
7
7
7
7
7
32768
26.05.2012 2:02:52  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:52  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:52  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:52  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:52  -  Подключен накопитель: (F:) A3cam
7
7
7
7
32772
26.05.2012 2:02:52  -  USB-накопитель отключен
7
7
7
7
7
7
7
7
7
7
32768
26.05.2012 2:02:56  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:56  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:56  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:02:56  - Защита уже установлена на диск: (F:)
26.05.2012 2:02:56  -  Подключен накопитель: (F:) A3cam
7
7
7
32772
26.05.2012 2:02:56  -  USB-накопитель отключен
7
7
7
7
32768
26.05.2012 2:03:02  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:03:02  - Защита уже установлена на диск: (F:)
26.05.2012 2:03:02  - Удалён ярлык: autorun.inf, Размер: 0 Байт
26.05.2012 2:03:02  - Защита уже установлена на диск: (F:)
26.05.2012 2:03:02  -  Подключен накопитель: (F:) A3cam
26.05.2012 2:03:02  - Защита уже установлена на диск: (G:)
26.05.2012 2:03:02  - Защита уже установлена на диск: (G:)
26.05.2012 2:03:02  -  Подключен накопитель: (G:) DVD
7
7
7
7
7
7
7
7
7 это изменение в параметрах системы или что то вроде этого...
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,350
Записей в блоге: 17
26.05.2012, 03:08 #17
Это лог работы на XP?
0
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
26.05.2012, 03:21  [ТС] #18
Avazart, нет win 7

Добавлено через 6 минут
Avazart, ошибки 2 нашел, лог исправил
Код
7
7
32772
26.05.2012 2:20:22  -  USB-накопитель отключен
7
7
7
7
7
32768
26.05.2012 2:20:26  -  Подключен накопитель: (G:) DVD
26.05.2012 2:20:26  - Защита уже установлена на диск: (G:)
7
7
7
7
32772
26.05.2012 2:20:29  -  USB-накопитель отключен
7
7
7
7
7
32768
26.05.2012 2:20:33  -  Подключен накопитель: (G:) DVD
26.05.2012 2:20:33  - Защита уже установлена на диск: (G:)
7
7
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,350
Записей в блоге: 17
26.05.2012, 04:24 #19
Avazart, нет win 7
Ну так теперь осталось проверить на XP и сравнить...
0
Ddv122
Почемучка)
1239 / 299 / 30
Регистрация: 23.12.2010
Сообщений: 1,998
Записей в блоге: 1
26.05.2012, 14:57  [ТС] #20
Avazart, лог XP
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2012-05-26 12:40:36  -  Подключен накопитель: (F:) 
2012-05-26 12:40:36  - Установлена защита на диск: (Y:)
2012-05-26 12:40:36  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:40:36  -  Подключен накопитель: (Y:) 
2012-05-26 12:40:36  - Защита уже была установлена на диск: (Y:)
7
7
7
2012-05-26 12:44:11  - Открыт диск: (F:)
2012-05-26 12:44:23  - Открыт диск: (Y:)
32768
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:44:44  -  Подключен накопитель: (F:) 
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
2012-05-26 12:44:44  -  Подключен накопитель: (Y:) 
2012-05-26 12:44:44  - Защита уже была установлена на диск: (Y:)
Добавлено через 5 минут
Avazart, там задержка какая та
0
26.05.2012, 14:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2012, 14:57

Как отследить нажатие правой кнопки мыши?
Здраствуйте, нужно сделать макрос для одной игры. Если человек нажал правую...

Как отследить клик на динамически созданном компоненте?
Создаю динамически несколько чекбоксов. AnsiString asKSPrefix = {"GB", "BS",...

Как отследить в какую сторону двигается курсор?
Всем доброго времени суток. И так я отталкиваюсь от середины формы, а именно у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru