Замена иконки 7z sfx архива. Придание инсталлятору подобающего вида.
Вокруг да около ходили много, но по-моему так никто подробно и не раскрывал суть вопроса: Как вставить в создаваемый вами дистрибутив на основе 7z sfx модуля свою иконку?
Скоро надеюсь грянет обещанная
Oleg_Sch гуи-оболочка, в которой можно будет легко и просто выбирать из каких файлов, с помощью какого модуля и его параметров делать инсталляшку, а также присваивать ей свою иконку... А пока, осмелюсь выложить не очень сложный алгоритм альтернативных, но вполне осуществимых действий, приводящих к желаемому результату.
Итак, для начала остановимся на необходимом программном обеспечении. Можно использовать множество программ для тех или иных целей, но я остановлюсь на тех, которыми пользовался сам - редактор ресурсов Resource Hacker и редактор иконок AWicons Pro. Русскую версию первого лучше всего взять на сайте
www.samlab.ws а второй поискать с помощью какого-нибудь поисковика.
Итак, приступаем к работе:
- устанавливаем, регистрируем... короче добиваемся работоспособного состояния вышеназванных программ.
- запускаем Resource Hacker. Файл - Открыть - выбираем в нем любой исполняемый файл, иконку из которого требуется вытащить.
- идем в пункт Icon Group и находим в одной из его подпапок требуемый ресурс иконок (их может быть несколько - нужную нам группу выбираем визуально, смотря на отображающиеся в правой части окна программы иконки).
- нажимаем на нем правой кнопкой мыши и выбираем пункт меню Сохранить [Icon Group: ....], далее указываем путь и имя файла иконок.
- поскольку в получившемся файле иконок их очень много а нам хочется чтобы размер дистрибутива практически не увеличился, нам теперь нужно убрать лишние иконки из этого файла. Я воспользовался программой AWicons Pro - открыл файл извлеченных на предыдущем этапе иконок и нажимая последовательно на одной за другой иконках правой кнопкой мыши, выбирал в контекстном меню Удалить, пока не осталось всего две нужных мне иконки - 16Х16 и 32Х32 точки 32-битного цвета и сохранил этот обрезанный ресурс.
- далее снова открываем Resource Hacker. Файл - Открыть (тип файлов - Все файлы) выбираем наш модуль 7z sfx (он должен быть несжатым упаковщиком upx, если сжат - распаковать командой
upx -d your_sfx.sfx, а после подмены иконок - запаковать командой
upx --best your_sfx.sfx ;естесственно, что в этом случае заранее скачанный вами упаковщик
upx должен находиться в одной папке с упаковываемым 7z sfx модулем) и жмем кнопку Открыть.
- снова заходим в пункт Icon Group, находим там подпапку с искомым ресурсом иконок, и нажав на самом ресурсе иконок правой кнопкой мыши из контекстного меню выбираем пункт Заменить ресурс ...
- в открывшемся окне щелкаем по кнопке Открыть значок, выбираем файл иконок, который был до этого предварительно обрезан и щелкаем по кнопке Заменить и далее Закрыть.
- после проделанных действий можно нажать Файл - сохранить как ... и указав нужную папку и имя вашего нового 7z sfx модуля выйти из программы.
- нужно убедиться что программа не забыла дописать расширение файла
.sfx а если забыла дописать его ручками
- далее из командной строки или с помощью заботливо созданного командного файла следующего содержания
COPY /b your_sfx.sfx + your_config.txt + your_7z.7z your_install.exe
где:
your_sfx.sfx - вами замучанный 7z sfx модуль
your_config.txt - вами созданный файл конфигурации модуля 7z sfx
your_7z.7z - ваш 7z архив с программой
your_install.exe - ваша получающаяся на выходе инсталляшка
вы сможете получить ваш инсталляционный файл с красивой иконкой!
Удачи!
P.S.: практика показала, что лучше всего оставить вообще только одну иконку - самую лучшую (48х48 32bit)