Сжатие exe и DLL
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Я пользуюсь програмкой ASPack. Работает она примерно так: сначала весь код программы сжимается архиватором.После этого в конец сжатого кода добавляется код разархиватора, который будет программу разжимать обратно. И в самом конце ASPack изменяет заголовок исполняемого файла так, чтобы при старте сначала запускался разархиватор.
Можно ли отобразить процес разжатия кода с помощью ProgressBar?
Можно ли отобразить процес разжатия кода с помощью ProgressBar?
- SergeyS
- Сообщения: 196
- Зарегистрирован: 21 ноя 2006, 17:12
- Откуда: Хакасия, Абакан
- Контактная информация:
А зачем вообще сжимать программы? Я читал ряд тестов проделанных на подобных программах (в частности использовали Excel и Word), так уменьшение программы на диске на 10Мб приводит к значительному увеличению занимаемой памяти в оперативке. Точных цифр не скажу, но весьма существенно.
Что тебе дороже, 1Мб диска или 1Мб оперативки?
Что тебе дороже, 1Мб диска или 1Мб оперативки?
Больше памяти в оперативке занимается только пока зжатая прога разжимается, на что уходит не так уж много времени. Если exe-шник весит пару метров, то сжать его на 30-70% очень даже полезно.
для этого нужно обладать информацией, на какой стадии находится процесс распаковки. Думаю кроме самого ASPack никто тебе ее не даст :-)" писал(а):Можно ли отобразить процес разжатия кода с помощью ProgressBar?
Еще как варианты:
- Пошариться по декодеру ASPack (а сделать это можно любым дебагером) и найти местечко, где, хотя-бы, берется кусочек данных для распаковки. Где-нить там, убрав ненужные nop или еще что впихнуть вызов API SendMessage (байт 25 понадобиться) с параметром HWND_BROADCAST и в каком нибудь процессе ловить данные и рисовать ProgressBar.
- Подвинуть ASPack и впихнуть туда свой код с созданием формы и прогрессбара, из него вызывать ASPack, в котором есть вызов твоей функции отрисовки (6 байт всего)
- Найти декодер ASPack и юзать как утилу с параметрами в виде пути к файлу exe. Вывод перенаправить в память и следить - что он там пишет - обычно прогресс выводят все утилы.
В итоге: Можно все - но стоит ли оно того?
It's a long way to the top if you wanna rock'n'roll
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
А зачем тогда тебе прогресс бар если она быстро разжимается? Это лишнее время и геморYura_ua писал(а):Больше памяти в оперативке занимается только пока зжатая прога разжимается, на что уходит не так уж много времени. Если exe-шник весит пару метров, то сжать его на 30-70% очень даже полезно.
Пользуюсьпрогой довольно давно, но как то не задумывался над этим запускается все быстро и четко работает
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Просто мой exe-шник очень большой и проходит 5-6 секунд перед тем как появиться окно. Пользователь, у которого машина намного слабее, может подумать что прога вобще не запускается. Вот мне и нужно, чтобы люди знали, что всё работает, только надо подождать.Лелик писал(а):А зачем тогда тебе прогресс бар если она быстро разжимается? Это лишнее время и гемор
Ну ладно. А есть у кого-то исходники программ по сжатию-расжатию?somewhere писал(а):Думаю кроме самого ASPack никто тебе ее не даст :-)
- SergeyS
- Сообщения: 196
- Зарегистрирован: 21 ноя 2006, 17:12
- Откуда: Хакасия, Абакан
- Контактная информация:
" писал(а):Больше памяти в оперативке занимается только пока зжатая прога разжимается, на что уходит не так уж много времени. Если exe-шник весит пару метров, то сжать его на 30-70% очень даже полезно.
Почитай информацию здесь, как раз про твой случай:Пользователь, у которого машина намного слабее, может подумать что прога вобще не запускается
http://www.citforum.ru/book/cook/exepack.shtml
http://www.podgoretsky.com/ftp/Docs/Mis ... ePack.html