Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Builder Функция для оформления - выравнивание компонентов http://www.cyberforum.ru/cpp-builder/thread551610.html
У меня такой вопрос блондинки: если у меня в программе все компоненты при создании формы прописываются где расположены, и они все выравниваются по 4м критериям, можно ли написать какую нибудь функцию...
Самодельный прогрессбар C++ Builder
Написал очень простой прогрессбар, хотелось бы услышать мнение народа по этому поводу... #pragma resource "*.dfm" TForm1 *Form1; int pan13B;...
C++ Builder Кейлоггер
Здравствуйте! Задание звучит так: Перехват и анализ нажатия клавиш на клавиатуре. Состоит из сервиса - перехватчика нажатия клавиш на клавиатуре и ведения лога нажатых клавиш по времени, а также...
C++ Builder break и функции Доброго времени суток. Вопрос возможно глупый, но уже как есть. Значит, имеется цикл, в цикле имеется кусок кода который на каждой итерации повторится пару раз, точнее в нескольких местах. Чтобы... http://www.cyberforum.ru/cpp-builder/thread551415.html
C++ Builder Добавление файлов с автонумерацией http://www.cyberforum.ru/cpp-builder/thread551318.html
В директории лежит файл "file_001.zip".Как добавить туда же "file_002.zip" с проверкой предыдущего файла. Например, далее должен создастся файл "file_003.zip". Автономерацию файла вроде как...
Конечный автомат (C# -> C++) C++ Builder
Здравствуйте! Помогите переписать программу с C# на C++ Равнодушным не останусь, на пиво договоримся :) using System; using System.Collections.Generic; using System.ComponentModel; using...
C++ Builder UCS to String
Помогите перекодировать из UCS2 (UTF-16) в обычный текст char(0-255) Написал такой код: String out = "", UCS =...
C++ Builder Копирование таблицы из excel в StringGrid Есть матрица 5*5. Нужно excel-е заполнить ячейки случайными числами, скопировать в буфер обмена. Кнопка должна перемещать числа из excel в матрицу с++. Создал подпрограмму, оговорил размерности... http://www.cyberforum.ru/cpp-builder/thread551182.html
C++ Builder Подскажите пожалуйста. Как перемещаться по StringGrid стрелками вправо и влево? http://www.cyberforum.ru/cpp-builder/thread551157.html
Подскажите пожалуйста. Как перемещаться по StringGrid стрелками вправо и влево? Нигде не могу найти. Знаю что нужно событие KeyPress, но как код написать не знаю. Именно как переместится.
C++ Builder Библиотека IP*WORKS Добрые люди, подскажите, где можно скачать (разумеется бесплатно) библиотеку IP*WORKS для С++. http://www.cyberforum.ru/cpp-builder/thread551055.html
Ddv122
Почемучка)
1241 / 301 / 30
Регистрация: 23.12.2010
Сообщений: 2,000
Записей в блоге: 1
0

Определенные действия при подключении флэшки

18.04.2012, 12:19. Просмотров 2194. Ответов 15
Метки (Все метки)

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
        char DiskLabel[MAX_PATH];
        WORD OldErrorMode;
        AnsiString dl;
        DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
        for ( int x = 1; x < 26; x++ ) { // проходимся циклом по битам
            if ( ( dr >> x ) & 1 ) {     // узнаём значение текущего бита, если единица - диск с номером x есть
                dl = AnsiString( ( char )( 65 + x ) ) + "://"; // получаем литеру диска
                OldErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS ); // убираем показ ошибок
                bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
                if (ready)
                {   // пытаемcя открыть корневую директорию
                    UINT DriveType = GetDriveType( dl.c_str( ) ); // получаем тип диска
                    if ( DriveType != DRIVE_CDROM && // исключаем CDROMы
                            DriveType != DRIVE_FIXED) // исключаем  HDD
                            {
                        PlaySoundW( L"alert.wav", 0, SND_ASYNC );   //проигрываем звук
                        GetVolumeInformation( dl.c_str( ), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0 );
                        ComboBox1->Items->Add(( dl + "//" ) + " [" + DiskLabel + "]" );
                        // для отчета
                        dt = Now( ); // формат даты
                        memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) +
                                          " " + " - " + " Подключен накопитель: " "(" + ( dl ) +
                                          ")" + " " + DiskLabel + "" );
                        if ( Settings->CheckBox5->Checked ) {   //если стоит галочка на  CheckBox
                            Button1->Click( );                  //НАЖИМАЕТСЯ Button
                        }
                        if ( Settings->CheckBox6->Checked ) {   //если стоит галочка на  CheckBox
                            Button5->Click( );                  //НАЖИМАЕТСЯ Button
                        }
                        if ( Settings->CheckBox7->Checked ) {   //если стоит галочка на  CheckBox
                            Button2->Click( );                  //НАЖИМАЕТСЯ Button
                        }
                        if ( Settings->CheckBox8->Checked ) {   //если стоит галочка на  CheckBox
                            Button3->Click( );                  //НАЖИМАЕТСЯ Button
                        }
                        if ( Settings->CheckBox9->Checked ) {    //если стоит галочка на  CheckBox
                            Button4->Click( );                   //НАЖИМАЕТСЯ Button
                        }
                    }
                }
            }
        }
    }
}
Этот код позволяет выполнять определенные действия при подключении флэшки
Все работает хорошо.Но есть 1 проблема
Код перехватывает флэшку , удаляет с неё необходимые папки, и диск появляется в системе.
1)Мне нужно удалить папки ищё раз при появлении диска в explorere или примерно через 10 секунд после выполнения этого кода.
2)И ещё раз удалить папки при отключении флэшки.
По 1 пункту таймер делать не сообразно, так как время может менятся от 3-20 сек.
Нужно как то повторить код, после этого кода с задержкой 2 секунды.
Я понимаю что по 2 пункту нужно копать в сторону
C++
1
WM_DEVICECHANGE && Message.WParam == 0x8000
Может кто небудь чем небудь поможет?

Вернуться к обсуждению:
Определенные действия при подключении флэшки
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 12:19
Готовые ответы и решения:

Выполнять определенные действия при любом выходе из функции
Есть функция, в которой ряд ветвлений и return'ов... при этом хотелось бы при каждом return'е...

Label не меняет текст при подключении флэшки
Добрый день. Пробую записывать файлы на флешку по событию подключения USB, все функции работают, но...

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

Сделать так чтобы при подключении нулевого порта выполнялся один цикл кода а при подключении другого - другой
Как сделать так чтобы при подключении нулевого порта выполнялся один цикл кода, а при подключении...

Определить четность числа и выполнить определенные действия
доброго времени суток, помогите пожалуйста, завтра экзамен((( Рассмотрим некоторое натуральное...

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