Можно ли на VB создать самораспаковываюшийся архив?06.08.2016, 09:00. Показов 4232. Ответов 26
Метки нет (Все метки)
0
|
|
| 06.08.2016, 09:00 | |
|
Ответы с готовыми решениями:
26
Как можно обойти проверку CRC или как можно распаковать поврежденный архив? Создать архив 7z Создать архив zip |
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 06.08.2016, 10:04 | |
Сообщение было отмечено echs как решение
Решение
1. Установите архиватор WinRar.
2. Прочитать и понять следующие команды: RAR <command> [ -<switches> ] <archive> [ <@listfiles…> ] [ <files…> ] [ <path_to_extract\> ] Пример: «C:\Program Files\WinRAR\Rar.exe» a -to3d -s -m5 -x*.rar -df -dh — archive.rar *.log Еще раз повторюсь, это не мануал, который не помешает покурить, благо он коротенький, а просто шпаргалка. Сперва разумеется указывается путь к rar. В общем случае это «C:\Program Files\WinRAR\Rar.exe» (с кавычками). Однако есть возможность использования не консольной, а gui-версии. Для этого нужно прописать «C:\Program Files\WinRAR\WinRar.exe». Команды/command Первый параметр коммандной строки — команда. a — добавление в архив m — перемещение в архив e/x — извлечение файлов из архива f — обновление архива (только те что уже есть в архиве) i — поиск строки l — список содержимого архива s — создание sfx архива t — тест архива u — обновление файлов в архиве (с добавлением новых) Ключи/switches На втором месте — всевозможные ключи (опции), разделенные одним или несколькими пробелами. Для удобства и исключения некоторых ошибок «колбасу» ключей можно завершать двойным дефисом (—) Самые важные ключи -r — рекурсивный проход каталогов -s — непрерывный (solid) архив. Очень полезная опция для большого количества однотипных и/или небольших файлов. В непрерывшом архиве словарь для всех файлов будет общим. -m<n> — метод (уровень) сжатия. 0 — без сжатия, 3 — обычный, 5 — максимальный -dh — открывать файлы, открытые в данный момент другими процессами (open shared files) Ключи безопасности -dw — удаляя, перезаписывать (wipe) файлы -dr — удалять файлы в корзину (windows) -ht[b|c] — тип хэша [BLAKE2,CRC32]. Для rar 5 рекомендуется использовать BLAKE2 как более криптостойкий. -p[пароль] — шифровать данные -hp[пароль] — шифровать и данные и заголовки (имена файлов) -rr — добавлять информацию для восстановления. Актуально при невосстановимых ошибках чтения/записи носителя информации. -t — тест после архивирования перед удалением (например для команды m) Ключи для оптимизации -ma — выбор версии RAR. ma4 выбирает 4-ю версию, ma и ma5 — пятую. По умолчанию архивы создаются в 4й версии. Пора использовать уже пятую. -mt<потоки> — количество потоков. По умолчанию RAR выберет количество потоков по количеству ядер. Если процесс архивирования предполагается фоновым, лучше занять только одно ядро, указав ключ -mt1 -md<n>[k,m,g] — размер словаря Для RAR 5.0 размер словаря может быть таким 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, 4 MB, 8 MB, 16 MB, 32 MB, 64 MB, 128 MB, 256 MB, 512 MB, 1 GB. Памяти потребуется в 6 раз больше чем размер словаря. Значения по умолчанию или 32М (и 4Мб для RAR 4) будет вполне достаточно. -v<размер>[k|b|f|m|M|g|G] — разбивка архива на тома определенного размера. Большие файлы могут вызвать проблемы при их передаче/пересылке/хранении. -v2G — размер тома 2Gb. -ri<приоритет>[:<задержка>] — приоритет процесса и задержка после каждой операции чтения-записи. (только в windows). Приоритет: 0 — по умолчанию системы, 1 — минимальный, 15 — максимальный. Задержка: 0..1000 ms. Задание задержки после каждой файловой операции позволяет сделать процесс архивирования менее заметным для других процессов системы. -ms — типы файлов, которые следует добавлять в архив, но не сжимать (-ms*.rar;*.zip;*.jpg) Выбор файлов -to<время> — добавляет файлы старше указанного возраста. Формат: [<ndays>d][<nhours>h][<nminutes>m][<nseconds>s]. Например -to3d -tn<время> — добавляет файлы новее указанного возраста -x*.rar — не включать в архив файлы или папки по маске файла/пути. *\filename — не включать файл filename во всех каталогах -x@<имяфайла> — исключить файлы, указанные файле <имяфайла> -n — дополнительный фильтр по маске файла/пути Разные ключи -ilog[name] — запись лога в файл -log[fmt][=name] — запись списка обработанных файлов в лог-файл -ap установить путь внутри архива -ver[n] хранение в архиве предыдущих версий файла -df — удалить файлы после архивирования -ed — не добавлять пустые каталоги -ep — добавлять файлы в архив без каталогов -ep1..ep3 — опции сохранения пути внутри архива (1 — без родительского каталога, 2 — полный путь, 3 — с диском/windows) -ag[формат] — добавить к имени архива текущую дату и время Символы в формате: Y — год, M — месяц, MMM — месяц (Jan, Feb, etc.), W — номер недели, A — день недели (пн — 1, вс — 7), D — день месяца, E — день года, H — час, M — минута (если указано после «H»), I — минута, S — секунда, N — порядковый номер, добавляемый к архиву так, чтобы оно было уникальным. — Прекратить обнаружение опций За дополнительными "Почему" и "А как", обратится к мануалу вложенному в архиватор. На случай если, у вас будут вопросы "И что мне теперь постоянно устанавливать на все компьютеры WinRAR?". Даю ответ, достаточно иметь в папке с программой 2 файла "Rar.EXE" и "Unrar.exe".
4
|
|
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 06.08.2016, 10:28 | |
Сообщение было отмечено echs как решение
Решение
geh, Сделайте .bat файл, в нем команды и из программы его на выполнение делайте, что-то типа Shell App.Path & "\start.bat" а батник уже сам к "Rar.EXE" и "Unrar.exe" обратится которые так же должены быть в этой папке. Ну вы поняли надеюсь.
1
|
|
|
|
|
| 06.08.2016, 11:43 | |
|
Наверное ТС хочет написать программу "самораспаковывающийся архив" а не создать его WinRARом как предлагают выше.
Не по теме: Не знаю как на VB (на нем не создавал) но на другом диалекте бейсика можно. http://pure-basic.narod.ru/art... x_zip.html
2
|
|
|
Модератор
|
|
| 06.08.2016, 13:43 | |
Сообщение было отмечено echs как решение
Решение
http://www.vbforums.com/showth... DropTarget - создание ZIP архива.
http://www.vbforums.com/showth... rage-based - распаковка ZIP архива. Все работает без доп зависимостей.
5
|
|
|
oh my god
|
|
| 06.08.2016, 13:51 | |
|
WinRar - рулит
между прочим я не раз выкладывал решения с использованием WinRar'а например здесь: https://www.cyberforum.ru/post9287586.html в переменной модуля зашифрованна картинка, которая программно распаковывается WinRar'ом хотя также можно распаковывать консольным Rar.EXE" и "Unrar.exe
0
|
|
|
|
||
| 06.08.2016, 18:36 | ||
|
geh, где-то на 5-м слоге (ещё не зная, чья тема), я начал удивляться*… ан нет, зря! ________________
1
|
||
|
|
|
| 06.08.2016, 19:31 | |
|
3
|
|
|
oh my god
|
||||||
| 06.08.2016, 23:26 | ||||||
Сообщение было отмечено magirus как решение
Решение
Zip-архиватор встроен во все современные ОСи такчто можно смело его использовать
и WinRar тоже присутствует у всех, должно быть странным если у когото его нет но если даже его не окажется то вот вариант который работает Вариант с ZIP. Здесь и только сдесь на этом форуме а не гдето там далеко (в америке) и не понятно как этим пользоваться ... Ниже выкладываю программу которая всё это делает, тоесть запаковывает и распаковывает архив: я даже не стану архив с пректом сюда заливать (извиняюсь за каламбур). программа очень проста для понимания и не нуждается в дополнительных файлах, настройках, батниках и тому подобным костыликам жаль что geh поторопился и раздал все свои лучшие ответы а лучшим должно стать это )) Итак: берём пустую форму и бросаем в её модуль сей код..
PS Делал на семёрке, в портабельной VB6. Проблем с совместимостью возникнуть не должно.
0
|
||||||
|
|
||||
| 07.08.2016, 00:51 | ||||
|
Большинство этих проблем было решено в примере. Только здесь нет отношения к задаче ТС.
1
|
||||
|
|
||
| 07.08.2016, 10:38 | ||
|
0
|
||
|
oh my god
|
|||
| 07.08.2016, 14:51 | |||
|
Делаем программу которая умеет распаковывать ZIP, и которая умеет пришивать байтовый массив в конец исполняемого файла, там нужно только старт считывания уточнить и скомпелировать Я ведь выложил свою версию для того чтобы увидеть как это можно сделать Тоже самое и делает WinRar он свой SFX модуль пришивает к заархивированному массиву данных и останется только запустить его для распаковки, ничего больше не потребуется Добавлено через 11 минут UBUNTU писал, .. Call CreateObject("WScript.Shell").Run("WinRA R x -y """ & f & "", 1, True)
0
|
|||
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 07.08.2016, 15:59 | |
|
locm, а что мешает иметь в своей программе функции winrar? его можно всегда держать рядом или в самом exe своей программы)))) зачем такие ухищрения или господа думают, что напишут архиватор лучше чем winrar?
0
|
|
|
|
||
| 07.08.2016, 16:10 | ||
|
Представьте, есть многогиговый SFX архив и если его распаковывать вашим методом, то придется извлечь из EXE на диск WinRAR и архив и после этого распаковывать. Быдлокодерство, не?
0
|
||
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 07.08.2016, 19:07 | |
|
locm, Быдлокордество это немного другое. Предлагаю посмотреть вот тут: http://govnokod.ru/. Но а по сути это лучше чем изобретать велосипед и причем такой хиленький.
0
|
|
|
Модератор
|
|
| 07.08.2016, 19:23 | |
|
Ничего не нужно изобретать, выше я дал две ссылки на пример упаковщика и распаковщика нативными средствами винды. Запаковываем с помощью упаковщика и кладем в хвост распаковщика zip архив. Все точно также будет распаковываться через WinRar:
1
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 22.11.2024, 19:57 | |
|
Здесь в этой теме никто не сказал, что для того чтобы создать SFX-архив достаточно просто сам файл архива поместить в ресурсы под любым именем и всё! После этого останется только в своей программе реализовать распаковку. Самый простой способ это CAB, так как там распаковка будет всего одной строчкой кода. Я сделал сегодня сам такой пример: Работа с zip архивами
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 22.11.2024, 21:17 | |
|
0
|
|
| 22.11.2024, 21:17 | |
|
Помогаю со студенческими работами здесь
20
Как создать архив? Создать zip архив Как создать архив? Создать архив с паролем Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|