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

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

25.05.2012, 00:43. Показов 6198. Ответов 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
25.05.2012, 01:35
Создаешь поток File/New/Other
И пишешь то что что должен выполнять потоке в метод
C++
1
2
3
4
5
6
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
    //---- Place thread code here ----
}
//---------------------------------------------------------------------------
Если в потоке нужно использовать обращение в к визуальным компонентам(например вывод) то оформляешь этот участок кода в отдельный метод класса потока и из Execute() вызываешь его методом Synchronize(&MetodName);
Как например здесь
https://www.cyberforum.ru/atta... 1334334243

Подробно об использовании класса потока можно прочитать в Архангельском.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 01:37  [ТС]
Avazart, мы с преподом моим делали, не вышло)
не понимаю смысла, как и что и куда, и как он мне поможет
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 02:14
Хороший препод... но тут нечему удивляться- самому надо учиться...

Добавлено через 1 минуту
Если ничего выводить в компоненты не надо то можно и WinApi использовать что возможно проще будет понять
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 02:19  [ТС]
1)Открытие проводника при подключении флэшки (на XP) на 7 всё ок, Xp не может быстро сообразить

2)Программа удаляет файлы с флэшки до появления флэшки в проводнике, и как только флэшка появляется в проводнике другая программа заново их копирует на флэшку, а мне нужно их удалить)

вот что мне нужно сделать когда флэшка появится в проводнике....
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 02:28
Ну (2) должен ждать пока (1) не выполнится(т.е проводник откроется) я правильно понимаю?
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 02:34  [ТС]
Avazart, ага
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 02:36
Ну а можно узнать что проводник открыт? То есть когда процесс (1) закончился?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 03:01  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Ну а можно узнать что проводник открыт? То есть когда процесс (1) закончился?
ой что то я не соображаю
мне нужно выполнить эти 2 функции тогда когда будет флэшка в проводнике
C++
1
2
void __fastcall TMain::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
так она появляется в системе!но не в проводнике.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 03:11
Но узнать можно что именно проводник открыт?

Добавлено через 4 минуты
В лючбом случае нужно как то узнавать когда уже можно производить удаление, а когда надо еще подождать
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 03:19  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Но узнать можно что именно проводник открыт?
я не знаю как....
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 03:41
Без этого не как...
Ищи способ...например поищи какие нибудь виндовсовские ф-ции...
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 04:25  [ТС]
Avazart, может это
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 04:32
Возможно, надо пробывать...
Но вопрос в том всегда ли готова флешка когда открывается проводник...
Ведь она может быть готова раньше или позже чем выскочит окно проводника...
И что будет если на компе отключен автозапуск?

Что каксается потока то в нутри надо можно делать следующее

C++
1
2
while( ! /*проверка готовности*/) ;
/* выполнение удаления */
То есть пока нет готовности поток будет висеть в цикле... как будет готовность выйдет из него и удалит что надо. Но это конечно не лучший вариант
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
25.05.2012, 11:26  [ТС]
Avazart, флэшка должна быть готова 100%, если проводник её открывает.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.05.2012, 22:31
Avazart, флэшка должна быть готова 100%, если проводник её открывает.
И что будет если на компе отключен автозапуск?
Если ты используешь
C++
1
2
void __fastcall TMain::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
то после сообщения с кодом 0x8000 флешка должна быть уже доступноа.
Поэтому думаю что тебе сделать проверить коды сообщений которые приходят на Win7 и на XP и при подключении флешки и выяснив отличаются ли они.Подобно тому как я делал сдесь Как отследить момент отключения флэшки
Более то покажи ввесь код который должен находиться внутри этого обработчика- возможно именно он вызывает ошибку.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 00:33  [ТС]
Avazart, аааа точно, ошибки в коде нет
нужно найти другой код 0x8000
Message.WParam == 0x8000

Добавлено через 3 минуты
вотт http://msdn.microsoft.com/en-u... s.85).aspx
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 00:33
Нужно сравнить для начала на XP и на Win7 получаемые коды
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
26.05.2012, 00:35  [ТС]
с Xp вот засада...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 00:40
DBT_DEVICEARRIVAL 0x8000
A device or piece of media has been inserted and is now available.
Если дословно:
"Устройство или кусок медиа вставлено и сейчас доступно".

Добавлено через 3 минуты
с Xp вот засада...
А в чем проблема?
Что мешает проверить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.05.2012, 00:40
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты 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