Можно ли на VB создать самораспаковываюшийся архив?06.08.2016, 09:00. Показов 4116. Ответов 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 архив Как создать архив? Создать архив с паролем Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 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. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|