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

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

27.04.2012, 10:06. Показов 5442. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru