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

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

25.05.2012, 00:43. Показов 6202. Ответов 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
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 00:42  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
с Xp вот засада...
У меня Windows 7
Avazart,
Цитата Сообщение от Avazart Посмотреть сообщение
0x8000
я его и использую....
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 00:52
При чем тут это?
Я говорю: проверь( !!! ) тем кодом который я приводил по ссылке... чего гадать?
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 01:13  [ТС]
Avazart, код работает но есть НО, скажем так 0x8000 это код появления диска в системе, а мне нужно в проводнике....
моя программа должна удалять файлы с флэшки- (2 раза!!!!!)
1->С кодом 0x8000 он удаляет, до появления флэшки в проводнике.
а мне нужно и сражу же и при появлении в проводнике.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
7
7
7
7
7
32772
25.05.2012 23:56:43  -  USB-накопитель отключен
7
7
7
7
32768
7
7
7
Добавлено через 7 минут
C++
1
2
3
4
void __fastcall TMain::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 32768 ) {
ShowMessage("heloo");
срабатывает
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 01:25
Если система видит флешку, то можно делать то что нужно...
И проводник тут не показатель...Ну если вам хочится то в чем проблема? - используйте код который в теме Samrisbe
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 01:33  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Если система видит флешку, то можно делать то что нужно...
моя программа удаляет папку RECYCLER с флэшки, если на пк нет вируса то всё замечательно
но если есть вирус то RECYCLER сразу же создается после того как удалит его моя программа.
Я могу допустим поставить таймер через секунду что бы удалило папку заново, или отследить ЧТО то
Таймер не красиво и не правильно...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 01:37
Правильно убить вирус чтоб не копировал, либо отслеживать изменения в каталогах флешки, либо пресекать само копирование на флешку.

Ведь кто будет чистить флешку после открытия проводника?

Ну либо попросту чистить флешку при отключении...
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 01:44  [ТС]
Avazart, убить вирус может только антивирусник...а его нет)

Цитата Сообщение от Avazart Посмотреть сообщение
либо отслеживать изменения в каталогах флешки,
??...наверно

Цитата Сообщение от Avazart Посмотреть сообщение
либо пресекать само копирование на флешку.
то что копирует туда папку имя произвольное и не знаешь как с генерируется
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 01:49
то что копирует туда папку имя произвольное и не знаешь как с генерируется
Спаршивать у пользователя разрешения либо делать проверку-зачистку после копирования.
либо отслеживать изменения в каталогах флешки
Ну есть такой способ называется "мониторинг каталогов" но я не уверен что он будет работать с флешкой.(использовал в одной своей программе)

Добавлено через 2 минуты
Avazart, убить вирус может только антивирусник...а его нет)
Так и у вашей программы нет гарантий что она правильно зачистит флешку...
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 01:54  [ТС]
Avazart, ну гарантий нету, ну главные функции работают, осталось сделать это)
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.05.2012, 01:19  [ТС]
Avazart, а как мне в поток все повешать? что бы через 3 секунды функция повторилась
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.05.2012, 01:30
Так в таймере сделай - зачем тут поток?
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.05.2012, 01:48  [ТС]
Avazart, я то так и делал но это не красиво и не профессионально

Добавлено через 2 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
while( ! /*проверка готовности*/) ;
/* выполнение удаления */
или как это сделать
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.05.2012, 01:58
или как это сделать
Ну так я об этом уже говорил надо искать способ проверки.

Добавлено через 1 минуту
Avazart, я то так и делал но это не красиво и не профессионально
Это логично, если нет способа проверить готовность...
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.05.2012, 02:06  [ТС]
Avazart, у меня время сутки а остались только это, покуда что
Может что нибудь подскажите , то крыша поедит...
а если повеситьв поток функцию которая будет
на счёт 2 пункта
C++
1
2
3
4
if(GetDriveType(Edit1->Text) == DRIVE_NO_ROOT_DIR)(или что то вроде этого
повторить команду)
else
 открыть диск)
Добавлено через 55 секунд
Avazart, на Xp задержка появления диска в проводнике около 1 секунды
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.05.2012, 02:20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
String Disk;
HANDLE hChange, hT;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//--------------------Ф-ция  потока--------------------------------------------------
DWORD WINAPI ThreadFunc(LPVOID)
{
while(GetDriveType(Disk.c_str()) == DRIVE_NO_ROOT_DIR);
ShowMessage("Готово!");
return 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Disk=Edit1->Text;
 
DWORD lpThreadId;
hT= CreateThread(NULL,0,ThreadFunc,NULL,0,&lpThreadId); // Запуск потока
}
//---------------------------------------------------------------------------
Пробуй, но как по мне с потоком хуже нежеле через таймер.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.05.2012, 02:29  [ТС]
Avazart, вот интерфейс подделал)
Я сегодня днём на Xp повоюю с открытием, отпишусь, спасибо за помощь
Миниатюры
Как в потоке организовать открытие флешки  
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
28.05.2012, 02:57
EdarGp, бахнули бы Альфу что ли))
Дык а кнопочки какие-то невыразительные... Или это бета-версия?)
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.05.2012, 10:40  [ТС]
The_Immortal, не альфу не хочу)сколько проблем с ней было.....
а особенно как программа на диплом...
а кнопки это по приколу)
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
28.05.2012, 11:12  [ТС]
Avazart, с потоком загружает одно ядро..и ShowMessage не видно.
Миниатюры
Как в потоке организовать открытие флешки  
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.05.2012, 16:26
с потоком загружает одно ядро
Ясное дело там же бесконечный цикл крутится...
На код кнопки засунуть в обработчик события который ловит сообщения о подключении флешки.
Тогда бы загрузка была бы только в момент подключения...

Ну на Win7 без проблем мессадж выскакивает- ну такое может быть с мессаджами.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2012, 16:26
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru