Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

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

25.05.2012, 00:43. Показов 6396. Ответов 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
8489 / 6156 / 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru