|
|
||||||
Как программно узнать закончил ли ZIP свою работу?25.02.2014, 11:19. Показов 13580. Ответов 90
Метки нет (Все метки)
Тот класс переделал, только не могу понять
как всётаки получить ответ что ZIP закончил свою работу ? класс переделал ! по рекомендации проффесионала под ником Dragokas выкладываю все версии в блоге ниже фрагмент с коментарием где необходим этот код
0
|
||||||
| 25.02.2014, 11:19 | |
|
Ответы с готовыми решениями:
90
Как в VBA узнать когда процесс закончил работу? Как уведомить первый поток о том, что второй закончил свою работу
|
|
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
|
|
| 28.02.2014, 22:21 | |
|
1
|
|
|
|
||||||
| 01.03.2014, 20:45 [ТС] | ||||||
|
Внес изменения ! ищите в готовых решниях, или читайте в моём блоге
![]() Дольше пришлось, приводить в порядок, назначить кнопкам функционал чем создание самого класса, зато теперь можно про него забыть и переходить к следующему моему проекту, а тот я уже считаю законченным, позже можно только дополнения внести ... Добавлено через 8 минут Вот как там производится копирование
Я конечно-же не до конца воплотил идею Dragokas там у меня простой подсчёт найденных окон, хотя если немного доработать (3-4 строчки...) можно будет отследить конкретное окно относящееся к данному процессу, я решил пока не усложнять, тем более The Trick настойчиво меня уверяет что я делаю чтото не правильно,( а в его компетентности я не сомневаюсь...) что-ж я сторонник того, чтоб не ломать то что работает вот увижу я код более правильный, в контексте этой задачи, найду как его вставить, тогда и поменяю
0
|
||||||
|
|
|
| 01.03.2014, 23:22 | |
|
Здесь вопрос больше не в компетентности, а в простоте реализации и стабильности кода.
Задачу можно решить несколькими способами. Найденный Trick код наиболее удачен в силу прямого обращения к библиотеке. Но и его реализация требует некоторых дополнительных усилий. FelixMacintosh, приведенное Вами решение довольно интересное. Неплохо бы теперь добраться до конкретного окна.
1
|
|
|
|
|
| 01.03.2014, 23:28 [ТС] | |
|
Спасибо что это заметили, ну хорошо, я напрягусь, доработаю, потому-что и мне не хорошо от этого, что в коде есть дыры....
Добавлено через 3 минуты Зато простенько )
0
|
|
|
Модератор
|
|
| 01.03.2014, 23:42 | |
|
Это ненадежный код и неправильный в корне. Попробуй во время архивации открыть какое-нибудь окно, и цикл у тебя не закончится, или закрыть открытое окно. Я не понимаю чем тебе не устраивает отслеживание тредов? Я понимаю что ты не хочешь связываться с COM и C++, выбирай более простое решение значит, а не неправильное. Если ты пишешь на VB6 и это StandartEXE, то ты можешь быть уверен что параллельных тредов не будет. Ты можешь узнать количество тредов до копирования, и во время и в разнице найти TID' нужных тредов, сделав WaitForMultipleObject ты дождешься корректного завершения.
2
|
|
|
|
|
| 01.03.2014, 23:58 [ТС] | |
|
Мне кажется проще будет в том коде
реализовать 2-мя циклами ========== перед копировинием запомнить состояние окон: запуск копирования ! 1) следить не появилось ли новое(новые) 2) если появилось выявить его и следить, что именно оно (или его группа) должно закрыться всё просто, и уже ошибки точно не будет, уж в крайнем случае я предусмотрел аварийную Cancel
0
|
|
|
Модератор
|
|||||||
| 02.03.2014, 01:10 | |||||||
Сообщение было отмечено Антихакер32 как решение
РешениеДобавлено через 1 час 6 минут Решил тебе немного помочь, как я и говорил - отслеживая тред (по идее нужно отслеживать все новые треды, но у меня создается только один и я отслеживал один). Все корректно ожидает и завершается функция только после копирования.
2
|
|||||||
|
|
|
| 02.03.2014, 09:16 [ТС] | |
|
Спасибо, прикрутил, на моей системе WaitForSingleObject действительно
правильно дожидаеться hTrd но смущает коментарий: (перечислять нужно все потоки, я для примера делаю 1 последний, на других системах может создаваться несколько потоков, поэтому не стоит так оставлять) Добавлено через 33 минуты Тоесть я даже не могу вопрос сформулировать, спрошу так... как перечислить все потоки, и нужно ли их перечислять все ? Добавлено через 3 минуты и как определить что этот тот самый поток
0
|
|
|
Модератор
|
|||
| 02.03.2014, 10:00 | |||
|
1
|
|||
|
|
|
| 02.03.2014, 10:18 [ТС] | |
|
Дошло!, ну это примерно то-же о чем я и Dragokas уже писал, только я говорил о разнице окон а не потоков, нужно проследить добавленный поток верно ?
Добавлено через 8 минут The Trick спасибо еще раз!, твой код способен уже работать в классе а не отдельном модуле так как не используется AddressOf, я очень рад полученным знаниям ! а ведь ещё неделб назад в интернете днём .. с огнём нельзя было найти адекватный ответ на этот вопрос, только здесь, и сейчас ответ найден ! ✰
0
|
|
|
Модератор
|
|||
| 02.03.2014, 10:30 | |||
|
Добавлено через 10 минут
1
|
|||
|
|
||
| 03.03.2014, 09:25 [ТС] | ||
|
Отметил лучшим ✰ ответом !
Добавлено через 1 минуту Добавлено через 22 часа 44 минуты Очень не рекомендую проводить необдуманные эксперементыс библиотеками Shell.32 и zipfldr.dll после моих эксперементов, мне пришлось пере-устанавливать Windows (хорошо что я запасся загодя, необходимым софтом, установил поверх старой 2-дня настройки из старой перетаскивал )моя Shell32 сначало выдовала странности, а потом и вовсе слетела ... а ведь она отвечает за многие эфекты в Windows Exploere
0
|
||
|
|
|
| 03.03.2014, 09:34 [ТС] | |
|
...и еще не все шрифты восстановил
0
|
|
|
|
||
| 03.03.2014, 10:23 [ТС] | ||
|
Кликните здесь для просмотра всего текста
Shell - достаточно полное представление о наиболее важных вызовов с использованием RUNDLL32 окон.
Это довольно полный список вызовов с использованием Rundell32 например, доступ к диалоговом окне "Свойства экрана" Панель управления ", и т.д. .. Доступность Общие сведения: Shell "rundll32.exe shell32.dll, Control_RunDLL access.cpl,, 3" Клавиатура: Shell "rundll32.exe shell32.dll, Control_RunDLL access.cpl,, 3" Мышь: Shell "rundll32.exe shell32.dll, Control_RunDLL access.cpl,, 3" Звук: Shell "rundll32.exe shell32.dll, Control_RunDLL access.cpl,, 3" Дисплей: Shell "rundll32.exe shell32.dll, Control_RunDLL access.cpl,, 3" Добавить / Удалить Программы Установка и удаление программ: Shell "rundll32.exe shell32.dll, Control_RunDLL команду appwiz.cpl, 0" Установка / Удаление программ: Shell "rundll32.exe shell32.dll, Control_RunDLL команду appwiz.cpl, 1" Выбор программ по умолчанию: Shell "rundll32.exe shell32.dll, Control_RunDLL команду appwiz.cpl, 3" Добавить программу с CD или дискеты: Shell "rundll32.exe shell32.dll, Control_RunDLL команду appwiz.cpl, 3" Установка / удаление компонентов Windows: Shell "rundll32.exe shell32.dll, Control_RunDLL команду appwiz.cpl, 2" Применение Настройка Windows Портфель: Shell "rundll32.exe syncui.dll, Briefcase_Intro" Сжатие Показать содержимое Zip: Shell "rundll32.exe Zipfldr.dll, RouteTheCall C: \ a.zip" Советник по содержимому Shell "rundll32.exe msrating.dll, RatingSetupUI" Панель управления Часы работы: Shell "rundll32.exe shell32.dll, Control_RunDLL" Удалить ярлыки рабочего стола Shell "rundll32.exe Fldrclnr.dll, Wizard_RunDLL" Диалоги Печатная: Shell "rundll32.exe DISKCOPY.DLL, DiskCopyRunDll" Диск Формат: Shell "rundll32.exe shell32.dll, SHFormatDrive" Настройки дисплея Wallpaper: Shell "rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 0" Заставка: Shell "rundll32.exe shell32.dll, Control_RunDLL desk.cpl,, 1" Настройки: Shell "rundll32.exe shell32.dll, Control_RunDLL desk.cpl,, 3" Темы: Shell "rundll32.exe shell32.dll, Control_RunDLL desk.cpl,, -1" Заставка Tab: Shell "rundll32.exe desk.cpl, InstallScreenSaver% 1" Внешний вид: Shell "rundll32.exe shell32.dll, Control_RunDLL desk.cpl,, 2" Диалоги Быстрый поиск: Shell "rundll32.exe shell32.dll, Control_RunDLL findfast.cpl" Открыть файл с ... : Shell "rundll32.exe shell32.dll, OpenAs_RunDLL FileName" Открыть папку, в которой шрифты установлены: Shell "rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL FontsFolder" Открытый диалог - Game Device: Shell "rundll32.exe shell32.dll, Control_RunDLL joy.cpl" Аппаратные средства Добавить новый мастер оборудования: Shell "rundll32.exe shell32.dll, Control_RunDLL экрана Hdwwiz.cpl Параметры" Откройте диспетчер устройств: Shell "rundll32.exe devmgr.dll DeviceManager_Execute" Безопасное извлечение устройства: Shell "rundll32.exe shell32.dll, Control_RunDLL hotplug.dll" Мастер установки сканеров и камер безопасности: Shell "rundll32.exe wiashext.dll, AddDeviceWasChosen" Internet Explorer Упорядочить избранное: Shell "rundll32.exe Shdocvw.dll, DoOrganizeFavDlg" Ограничение доступа - пароль: "Шелл" rundll32.exe msrating.dll, ClickedOnRAT% 1 " Свойства обозревателя - вкладка - Общие сведения: Shell "rundll32.exe shell32.dll, Control_RunDLL inetcpl.cpl,, #" Интернет Открыть Telnet: Shell "rundll32.exe Url.dll, TelnetProtocolHandler www.yahoo.com.ar" Печать HTML документа: Shell "rundll32.exe mshtml.dll, PrintHTML" NombreArchivoyPath "" Клавиатура Клавиатура Свойства - вкладка Оборудование: Shell "rundll32.exe shell32.dll, Control_RunDLL main.cpl @ 1,1" Клавиатура Properties - вкладке "Скорость": Shell "rundll32.exe shell32.dll, Control_RunDLL main.cpl @ 1" Microsoft Java Virtual Machine - удалить: Shell "rundll32.exe advpack.dll, LaunchINFSection java.inf, удаление" Модем Установка модема Wizard: Shell "rundll32.exe modemui.dll, InvokeControlPanel" Мышь Свойства: Мышь - Настройка кнопки: Shell "rundll32.exe shell32.dll, Control_RunDLL main.cpl @ 0,0" Свойства: Мышь - Оборудование: Shell "rundll32.exe shell32.dll, Control_RunDLL main.cpl @ 0,4" Свойства: Мышь - Pointer Set: Shell "rundll32.exe shell32.dll, Control_RunDLL main.cpl @ 0,2" Свойства: Мышь - Установить колесо мыши: Shell "rundll32.exe shell32.dll, Control_RunDLL main.cpl @ 0,3" MSN Messenger Удалите в системном трее Msn: Shell "rundll32.exe advpack.dll, LaunchINFSection% WINDIR% \ INF \ msmsgs.inf, BLC.Remove" Мультимедиа NetMeeting: - инициировать вызов: Shell "rundll32.exe msconf.dll, CallToProtocolHandler% L" NetWork Мастер веб-сайтов: Shell "rundll32.exe netplwiz.dll, AddNetPlaceRunDll" Отключить сетевой диск: Shell "rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Отключить" Откройте Сетевые соединения: Shell "rundll32.exe shell32.dll, Control_RunDLL ncpa.cpl" Мастер настройки сети: Shell "rundll32.exe hnetwiz.dll, HomeNetWizardRunDll" ODBC Открытие источника данных Администратор: Shell "rundll32.exe shell32.dll, Control_RunDLL Odbccp32.cpl" Пароль Мастер забытых паролей: Shell "rundll32.exe keymgr.dll, PRShowSaveWizardExW" Мастер сброса паролей: Shell "rundll32.exe keymgr.dll, PRShowRestoreWizardExW" Модем и телефон Параметры настройки телефона и модема: Shell "rundll32.exe shell32.dll, Control_RunDLL modem.cpl" Свойства: Электропитание: Shell "rundll32.exe shell32.dll, Control_RunDLL powercfg.cpl" Принтеры Добавить принтера: Shell "rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL AddPrinter" Диалог - подключение к принтеру: Shell "rundll32.exe Winspool.drv, ConnectToPrinterDlg" Открыть принтера папки: Shell "rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL PrintersFolder" Распечатать эту страницу для проверки: Shell "rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL PrintTestPage" Открыть принятых методов установить принтер по умолчанию: Shell "rundll32.exe printui.dll, PrintUIEntry / Y / N" [Версия Отображаемое имя] "" Язык и региональные стандарты - Диалог Вкладка Дополнительно: Shell "rundll32.exe shell32.dll, Control_RunDLL intl.cpl,, 2" Лоскут Языки: Shell "rundll32.exe shell32.dll, Control_RunDLL intl.cpl,, 1" Региональные стандарты Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL intl.cpl,, 0" Общие папки Открыть диалоговое окно общих папок: Shell "rundll32.exe NTLANUI.DLL, ShareManage" Свойства Звуки и аудиоустройства Лоскут Объем: Shell "rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl @ 1" Аудио Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl,, 2" Оборудование Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl,, 4" Лоскут Голос: Shell "rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl,, 3" Свойства системы Генеральный Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl, #" Автоматическое обновление Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl, 5" Лоскут Имя компьютера: Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl, 1" Оборудование Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl, 2" Удаленная Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl 6" "Восстановление системы" Tab: Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl, 4" Вкладка "Дополнительно": Shell "rundll32.exe shell32.dll, Control_RunDLL команду sysdm.cpl, 3" Панели задач Свойства панели задач: Shell "rundll32.exe shell32.dll, Options_RunDLL 1" Установите часы и дата: Shell "rundll32.exe shell32.dll, Control_RunDLL timedate.cpl" Windows Windows Firewall: Shell "rundll32.exe shell32.dll, Control_RunDLL firewall.cpl" Изображения и факсы:. Exe shimgvw.dll, ImageView_PrintTo / р "% 1"% 2 ""% 3 ""% 4 " Блокировка компьютера: Shell "rundll32.exe User32.dll, LockWorkStation" Выход: Shell "rundll32.exe shell32.dll, SHExitWindowsEx 0" Приостановка и спящий: Shell "rundll32.exe Powrprof.dll, SetSuspendState"
0
|
||
|
|
||||||||
| 03.03.2014, 22:10 [ТС] | ||||||||
|
плюс чтение потоков
и как итог полная пере-установка ... Добавлено через 11 часов 32 минуты ну это всё лирика, а вот главное ! ![]() Кликните здесь для просмотра всего текста
0
|
||||||||
|
Модератор
|
|
| 03.03.2014, 22:21 | |
|
Для ожидания нескольких потоков есть функция WaitForMultipleObjects.
Способ поиска потоков - мягко говоря, кривой (через обработчик ошибок). Я чисто для примера делал, чтобы не заморачиваться, делай в массиве лонгов и сразу передавай в Wait-функцию.
0
|
|
| 03.03.2014, 22:21 | |
|
Помогаю со студенческими работами здесь
40
Закончил ли свою работу animate, toggle
Как узнать что WinSock закончил загрузку файла? Как узнать, что клиет закончил отсылать пакеты? Как сделать, чтобы один поток не закончил работу, пока второй работает? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|