Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/27: Рейтинг темы: голосов - 27, средняя оценка - 4.52
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Cканировать подключенные флэшки

27.04.2012, 10:06. Показов 5746. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не подскажите возможно ли прикрутить к кнопке код
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
        char DiskLabel[MAX_PATH];
        WORD OldErrorMode;
        AnsiString dl;
        DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
        for ( int x = 0; x < 26; x++ ) { // проходимся циклом по битам
            if ( ( dr >> x ) & 1 ) {     // узнаём значение текущего бита, если единица - диск с номером x есть
.................
что то вроде
C++
1
2
3
4
void __fastcall TForm1::Button2Click( TObject *Sender ) {
 
ComboBox1DropDown( NULL );    //обновляем ComboBox1
  }
То же самое но для WMDeviceChange?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2012, 10:06
Ответы с готовыми решениями:

Извлечение флэшки с программы которая запущена с той же флэшки
Пишу типа авторана для флэшки. И там я хочу написать код который-би безопасно извлекал флэшку. Использую юнит который с большим трудом...

Внутри флэшки ярлык флэшки
Добрый день! Уже не знаю который день внутри флэшки лежит ярлык на саму флэшку через который можно открыть файлы.Но буквально вчера или...

Подключенные устройства
Всем Привет, Подскажите, через что или как сделать что бы увидеть кто подключился (Высветить список IP кто подключился). Просто...

40
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.04.2012, 21:35  [ТС]
Студворк — интернет-сервис помощи студентам
QWIPQ, а зачем в вашем проекте исключать dl=="G://"? , суть понел буду пробывать)
У меня С++ Builder 2006)Проект не пойдёт)
и код
C++
1
2
3
4
 if( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8004 )
    {
                        dt = Now( );
                        memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + " USB-íàêîïèòåëü îòêëþ÷åí");
Работает?
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
27.04.2012, 21:40
убирайте
dl=="G://"
эт я эксперементировал и тестировал))))
Работает?
да ток юзай осторожно... это убивает флешку в компе а не извлекает)))
вот реанимация
0
18 / 34 / 2
Регистрация: 28.01.2012
Сообщений: 181
27.04.2012, 21:59
Цитата Сообщение от QWIPQ Посмотреть сообщение
это убивает флешку в компе а не извлекает)))
это не убийство флешки банально мы отмонтировываем флешку и ВСЕ Windows XP сам самостоятельно не может смонтировать обратно, а Win 7 автоматом все монтирует
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.04.2012, 21:59  [ТС]
QWIPQ, и код
C++
1
2
3
4
void virtual __fastcall WMDeviceChange(TMessage &Message);
    BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_DEVICECHANGE,TMessage,WMDeviceChange);
    END_MESSAGE_MAP(TForm);
В private пишется)
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
27.04.2012, 22:06
Цитата Сообщение от Dondok Посмотреть сообщение
это не убийство флешки банально мы отмонтировываем флешку и ВСЕ
да знаю ток прост ручками эт делать все приходится в XP или прогать автомонтер что не оч охото если знаешь что эт понадобиться на оч редкие случаи, а в семерке все гуд...

Цитата Сообщение от EdarGp Посмотреть сообщение
В private пишется)
ну эт дело вкуса, в крайних случаях важно... а здесь хоть куда не засунь главн чтоб работало)))
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.04.2012, 22:18  [ТС]
А есть пример сортировки в этом проектЕ?
2) как ток подключается флешка у меня организован поиск по тому что есть и выводит ток её данные в нижнее
или
допустим флеха стояла когда произошло включение проги, можн сделать следующее:
1) как только вытаскивают флешку над в мемко данные обновить и не добавлять туда
2) как ток снов вставляется флеха одной просто делай поиск этой флехе в мемо если её нет то добавь её туда
0
18 / 34 / 2
Регистрация: 28.01.2012
Сообщений: 181
27.04.2012, 22:22
Цитата Сообщение от QWIPQ Посмотреть сообщение
да знаю ток прост ручками эт делать все приходится в XP или прогать автомонтер что не оч охото если знаешь что эт понадобиться на оч редкие случаи, а в семерке все гуд...
я же тут привел пример программы автомонтирования в Win XP
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
27.04.2012, 22:26
оп... сорь не видел, не обращал внимание)))
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.04.2012, 23:23  [ТС]
Цитата Сообщение от QWIPQ Посмотреть сообщение
да ток юзай осторожно... это убивает флешку в компе а не извлекает)))
Это ловит момент отключения флэшки) а не убивает её)))
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
27.04.2012, 23:27
пффф... все видимо на сегодня хватит видимо чет путаться начинаю ужо... да 0x8004 код отключения ты прав

P.S. юбилейное сотое сообещение и такое неахти
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
27.04.2012, 23:41  [ТС]
и попробуйте
C++
1
2
  for ( int x = 1; x < 26; x++ ) { // ïðîõîäèìñÿ öèêëîì ïî áèòàì
            if ( ( dr >> x ) & 1 ) {
int x = 1, Что бы исключить FDD.И быстрее поиск и не нужен нам флопик)
Так я и не нашел как вы сравнивайте)

Не по теме:


Как раз пиво пью)Тост появился) За ваш маленький юбилей)

0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
27.04.2012, 23:49
флопик?))) он чем тебе помешал?))) пущай будет)))) раритет над уважать)))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void __fastcall TForm1::SVED()
{
.
.
                if(Form1->Memo1->Text.Pos(String(buffer))==false) ///////от тут-то все сравнение)))))
                {
                    int N=0;
                    String Vivod=String(buffer);
                    Form1->Memo2->Lines->Add(Vivod);
                    if(Form1->CheckBox1->Checked==true)
                    {
                        for(int i=0;i<OPEN->Count;i++)
                        {
                            if(Vivod.Pos(OPEN->Strings[i]))N++;
                        }
                        if(N==0)
                        {
                            dl.Delete(2,dl.Length());
                            dl+=":\\";
                            DeleteVolumeMountPoint(dl.c_str());
                            Form1->Memo2->Lines->Add("Привод удален из системы. Причина: не индетефицирован.");
                        }
                        if(N==1)Form1->Memo2->Lines->Add("Устройство индетефицировано: разрешено использование.");
                    }
                }
.
.
}
а вызывается она в
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::WMDeviceChange( TMessage &Message )
{
.
.
                    if ( (DriveType != DRIVE_CDROM && // исключаем CDROMы
                             DriveType != DRIVE_FIXED &&// исключаем  HDD
                             DriveType != DRIVE_RAMDISK &&
                             DriveType != DRIVE_REMOTE &&
                             DriveType != DRIVE_NO_ROOT_DIR && DriveType != DRIVE_UNKNOWN))
                    {
                         //тут вызываю когда определяю что эт флешка именно а не ФЛОПИК))))
                    }
.
.
}
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.04.2012, 00:00  [ТС]
Цитата Сообщение от QWIPQ Посмотреть сообщение
ФЛОПИК)))
Просто если его не исключить, он будет отображаться(ели он на ПК есть), а тема Сканировать подключенные флэшки.эта так к слову)у меня на этом грабли были.буду пробовать сканировать.
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
28.04.2012, 00:03
Цитата Сообщение от EdarGp Посмотреть сообщение
Просто если его не исключить, он будет отображаться(ели он на ПК есть)
на работе пробовал - не отражается О_о
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.04.2012, 00:06  [ТС]
QWIPQ, а я в универе пробовал)Диск A на каждом ПК был...
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
03.05.2012, 01:07  [ТС]
Как подсчитать количество флэшек в системе?
C++
1
2
3
4
5
6
7
8
9
10
disk = AnsiString( ( char )( 65 + x ) ) + "://"; // получаем литеру диска
 UINT DriveType = GetDriveType( disk.c_str( ) ); // получаем тип диска
   if ( DriveType != DRIVE_CDROM && // исключаем CDROMы
        DriveType != DRIVE_FIXED && // исключаем  HDD
        DriveType != DRIVE_RAMDISK &&  // исключаем  Ram disk
        DriveType != DRIVE_REMOTE && // исключаем FDD
        DriveType != DRIVE_NO_ROOT_DIR && //исключаем повреждённые диски
        DriveType != DRIVE_UNKNOWN) // исключаем неизвестные диски
   {
     Edit1->Text=disk; // результат в Edit1
как я понимаю, нужно сложить все DRIVE_FIXED Как это правильно сделать?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.05.2012, 01:29
Цикл вам надо.
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
03.05.2012, 01:43  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Цикл вам надо.
А по чём цикл?Что то я туплю...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.05.2012, 01:47
И вы забыли про такой DriveType как DRIVE_REMOVABLE, что и есть ваша флешка (ну или дискета, чтомаловероятно). Тогда ваш код принимает вид:
C++
1
2
3
4
if (DriveType == DRIVE_REMOVABLE) {
  Edit1->Text=disk; // результат в Edit1
  int i++; // считаем флешки
}
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
03.05.2012, 01:50  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
if (DriveType == DRIVE_REMOVABLE) {
Edit1->Text=disk; // результат в Edit1

тут получили флжэшки.....
int i++; // считаем флешки , каК???????
}
или я уже сонный но я не понимаю смысл этого....
как количество вывести в лэбел...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2012, 01:50

Подключенные библиотеки
Помогите нубу разобраться что да как На странице подключаю две библиотеки &lt;script...

Не работают подключенные библиотеки
друзья такая беда, не знал в какую тему написать: Подключены две библиотеки: &lt;script...

Подключенные устройства и их список
Доброго времени суток, форумчане! Необходимо получить список всех подключенных периферийных устройств, которые подключены к компьютеру в...

ip подключенные к порту cisco
День добрый! Интересует такой вопрос, возможно ли узнать какие ip адреса подключены к определённому порту cisco Catalyst 3550 Series Device...

Система не видит подключенные смартфоны
Дело в том что после перестановки системы у меня не установлены драйвера на подключаемые телефоны и при подключении к ПК они в диспетчере...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru