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

Как в потоке организовать открытие флешки

25.05.2012, 00:43. Показов 6194. Ответов 77
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как уже все слышали у меня есть 2 проблемы
1)Открытие проводника при подключении флэшки (на XP) на 7 всё ок, Xp не может быстро сооброзить
2)Программа удаляет файлы с флэшки до появления флэшки в проводнике, и как только флэшка появляется в проводнике другая программа заново их копирует на флэшку, а мне нужно их удалить)
Ставить на таймер как то не профессионально :| гыыы, умные люди советуют в поток...
Как создать какой-нить элементарный поток(Thread например),также в потоке организовать открытие флешки чтоб все шло по порядку а все значения передавались после открытия например.
А как его реализовать то???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2012, 00:43
Ответы с готовыми решениями:

Как организовать открытие другой формы в соответствии поставленого флажка
Всем привет. Как организовать открытие другой формы в соответствии поставленого флажка Пример Форма А - Форма Б -

Открытие окна в новом потоке.
Есть основное окно, на котором находиться кнопка, и другие контролы. При её нажатии обрабатывается достаточное большое количество данных и...

Открытие формы в отдельном потоке
Добрый день, такой вопрос: имеется главная форма, на ней кнопка, которая делает любую длительную операцию. Создал отдельную форму на ней...

77
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.06.2012, 13:54
Студворк — интернет-сервис помощи студентам
Avazart, да, я это реализовывал уже...
Просто интересно, работает?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
10.06.2012, 14:03  [ТС]
Avazart, честно нет, может модификации вирусов более жесткие...или что то другое...но и в интернете (по отзывам) и в жизни(на личном опыте) не чем они не помогли...

Добавлено через 2 минуты
Avazart, это больше помогает
Code
1
2
3
4
5
6
7
8
9
10
11
12
TITLE Flash Cleaner 
 color 02 
 CLS
attrib -S -H -R -A /D /S
del /F /S /Q *.lnk
del /F /S /Q *.inf
del /F /S /Q autorun.inf
RD /S /Q autorun.inf
RD /S /Q RECYCLER
RD /S /Q System Volume Information
RD /S /Q RESTORE
 CLS
2
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
10.06.2012, 14:08
Запись на флешку реализуй своей программой которая будет заменять этот файл на свободное место минус размер дописываемого файла, и записывайте файл..
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
10.06.2012, 14:12  [ТС]
QWIPQ, я же не для себя делаю...для универа....не думаю что там кто то будет через мою программу копировать....всем уже на вирусы пофиг, я за 4 года не на одном пк там антивирусника не увидел)вот и делаю революцию
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
13.06.2012, 18:16  [ТС]
нашел в чем дело в XP дело в неготовности диска....через секунду всё нормально, нужно как то вызвать функцию ещё раз..опроса дисков
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.06.2012, 18:54
Ну как же не готова, если ты говоришь что сообщение приодит?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
13.06.2012, 19:15  [ТС]
Avazart,
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TMain::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
        char DiskLabel[MAX_PATH];   //метка диска
        WORD OldErrorMode;  //отключаем показ ошибок
        AnsiString disk;   //переменная disk типа  AnsiString
        DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
        for ( int x = 1; x < 26; x++ ) { // проходимся циклом по битам
            if ( ( dr >> x ) & 1 ) {     // узнаём значение текущего бита, если единица - диск с номером x есть
                disk = AnsiString( ( char )( 65 + x ) ) + "://"; // получаем литеру диска
                OldErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS ); // убираем показ ошибок
                bool ready = DirectoryExists(disk); // пытаемcя открыть корневую директорию
                if (ready)
{ // пытаемcя открыть корневую директорию
[/CPP]
C++
1
2
 bool ready = DirectoryExists(disk); // пытаемcя открыть корневую директорию
                if (ready)
Вот так мы проверяем устройство готово или нет....Сообщения то приходят
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
13.06.2012, 20:23
Цитата Сообщение от EdarGp Посмотреть сообщение
через секунду всё нормально, нужно как то вызвать функцию ещё раз..опроса дисков
Что, таймер использовать никак?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.06.2012, 17:55  [ТС]
BRcr, по логу видно диск доступен и всё работает а вот открытие...


в итоге нужна проверка explorera
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.06.2012, 00:14
Не понял, к чему это было...
Все-таки вернемся к таймеру - через секунду же все нормально, вот и обождать эту секунду.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.06.2012, 00:52
Поток он хочит и усЁ!

Добавлено через 36 минут
Есть идея попробывать производить действия после следующего сообщения ( 7 ):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool b=false;
//-------------------------------------------
void __fastcall TForm1::WMDeviceChange( TMessage &Message )
{
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) 
    {
    b=true;
    }
 
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 7 ) 
    {
     if(b) 
        {
        DoSomething() // Делаем  что надо
        b= false;
        }
    }
b= false;
}
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.06.2012, 06:55
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool b=false;
//-------------------------------------------
void __fastcall TForm1::WMDeviceChange( TMessage &Message )
{
* * if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) 
* * {
* * b=true;
* * }
if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 7 ) 
* * {
* * *if(b) 
* * * * {
* * * * DoSomething() // Делаем *что надо
* * * * b= false;
* * * * }
* * }
//b= false; <---- !!!
}
А-то так никогда true не настанет.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.06.2012, 16:59
Да точно... забыл убрать...
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.06.2012, 19:07  [ТС]
BRcr, а не извесно на моём пк секунду, на других до 20...
Я привел скриншот программы и лога работы и ошибку....в логе видно что диск определился в системе..и с ним произведены действия...сняты атрибуты у файлов...и скопирован батник на него..но в проводнике он ещё не появился...и ругается диск не найден...
Avazart, думал я тоже после "7"...ну всё ровно диcк не доступен...и такие траблы только на Window Xp
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.06.2012, 19:31
Кто мешает ставить таймер на секунду- и пусть он себе работает - пока диск не станет доступным... как станит доступным сделат что надо и выключится...
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.06.2012, 19:41  [ТС]
Avazart, ошибка же вылетает...папка не существует...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.06.2012, 19:43
Сообщения об ошибках, мол, не найден диск, можно с помощью FindWindow() тушить в том же таймере.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.06.2012, 19:50
Цитата Сообщение от BRcr Посмотреть сообщение
Сообщения об ошибках, мол, не найден диск, можно с помощью FindWindow() тушить в том же таймере.
та не это бок, будет заметно...
Цитата Сообщение от EdarGp Посмотреть сообщение
Avazart, ошибка же вылетает...папка не существует...
так обрабатывай их и туши...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2012, 19:50
Помогаю со студенческими работами здесь

Безопасное открытие флешки
Довольно часто приходится работать с чужими флешками, на которых, порой, оказывается туева хуча разных вирусов. Мало того, что мой комп...

Ярлык на открытие флешки
Здравствуйте уважаемые специалисты CyberForum. Благодарю за вашу бесценную работу. Прошу описать вкратце логику создания...

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

Как получить значение переменной созданной в потоке, в другом потоке?
Добрый день :) Возник такой вопрос &quot;как получить значение переменной созданной в потоке, в другом потоке?&quot; Не знаю, как правильно...

Ошибка флешки - Ярлык на открытие флешке в самой ней!
У меня на флешке какойто странный вирус!!! Открываю я флешку через мой комп*ютер, там внутри ярлык на эту же флешку...когда я его открываю...


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

Или воспользуйтесь поиском по форуму:
78
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru