|
|
||||||
Как программно узнать закончил ли ZIP свою работу?25.02.2014, 11:19. Показов 13541. Ответов 90
Метки нет (Все метки)
Тот класс переделал, только не могу понять
как всётаки получить ответ что ZIP закончил свою работу ? класс переделал ! по рекомендации проффесионала под ником Dragokas выкладываю все версии в блоге ниже фрагмент с коментарием где необходим этот код
0
|
||||||
| 25.02.2014, 11:19 | |
|
Ответы с готовыми решениями:
90
Как в VBA узнать когда процесс закончил работу? Как уведомить первый поток о том, что второй закончил свою работу
|
|
9908 / 3923 / 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 закончил загрузку файла? Как узнать, что клиет закончил отсылать пакеты? Как сделать, чтобы один поток не закончил работу, пока второй работает? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|