FlexAdmin
24-12-2010, 10:26
Предлагаю в данной теме изучать вопросы, касающиеся создания SFX-архивов, а так-же делиться своими работами.
Начнем с примера - Locate32.
http://gyazo.com/38ab33ac1da0c8cddecbed39335756c8.png
1. Механизмы программы
Для начала нужно обратить на такие детали, как настройки программы. Подопытный имеет возможность хранить свои настройки и в файле и в реестре, по желанию. Чтобы не задавать потом вопросов, мы рассмотрим вариант работы с реестром сразу.
Программа имеет только один критически важный параметр, который нам нужно перенести: язык интерфейса. Сразу настройте эту опцию у себя на машине, сохраните настройки путем выхода из программы. А теперь пройдемте в реестр, Господа:
http://gyazo.com/52effdf964c75c2097113f03e68ab217.png
Очевидно, что этот параметр отвечает за выбранный язык интерфейса. Открываем блокнот, сохраняем файл "Install.cmd" в папке с Подопытным.
Теперь пишем в нем:
REG DELETE HKCU\Software\Update /f
REG ADD HKCU\Software\Update\Locate32 /v Language /t REG_SZ /d Lan_ru.dll
Первая строка удаляет раздел реестра, чтобы вычистить настройки, вторая создает ключ с указанием языка.
Вопрос с настройками мы решили. Обратимся к специфике первого запуска: Что делает программа, когда её запускают в первый раз? Она делает настройки, ассоциируется с файлами и обновляет всякие свои базы данных. Пациент активно работает с базой данных, которую при первом запуске нужно создать. Обращаемся к файлу справки нашей программы, ищем ключ, отвечающий за выполнение подобных операций.
http://gyazo.com/67ce5419c06b0243b747044b693dcdfa.png
Отлично, ключ -u. Добавим его в наш Install.cmd
Так-же нам нужна иконка для SFX-архива. Её можно извлечь такими программами, как ResHacker, Restorator и т.д. Извлеките её и положите в папку с программой, дав ей имя "Icon"(Для однозначности).
http://gyazo.com/e66a7e787fe00353e8be44c1649a40e3.png
start locate32.exe -u
Сохраните файл. Для проверки результата своей работы удалите из реестра раздел с настройками, перенесите программу в другую папку и запустите Install.cmd. Все прошло гладко? Язык русский? Это хорошо, ведь это значит, что мы будем делать архив.
2. Знакомтесь: Архив. SFX-Архив.
Программирование это Дзен. Хоть мы и не пишем программу, а делаем архив, мы всё равно должны помнить о Дзене и забыть о привязанностях, поэтому не жмите на папочку Locate32, в поисках "Добавить в архив...", а зайдите в неё и добавьте СОДЕРЖИМОЕ ПАПКИ, поскольку название конечной папки должен выбирать пользователь. Смотрите (http://gyazo.com/fcf8a3f06abd350342d0f21139cffee7.png), если вы не поняли, что я имею в виду.
Теперь смело жмите "Добавить в архив".
http://gyazo.com/0f967542089800d4874e6afaf170181f.png
Галочка "Создать SFX-архив": Ставим, иначе ничего не получится.
Выпадающий список "Метод сжатия": На маленьких программках можно ставить "Максимальный". Если вы пакуете большую игру или папку с музыкой(лол) то не стоит сжимать вообще. Ну если только немножко.
Галочка "Добавить электронную подпись": Если у Вас своя собственная лицензионная копия WinRaR, зарегистрированая на Вас, то отметьтесь, как автор этого творения. Если у Вас пиратский WinRaR, то вы предпишете авторство владельцу лицензионного ключа.
Галочка "Добавить информацию для восстановления": Если Вы собираетесь таскать эти программы на компакт-дисках, которые любят царапаться, то стоит потратить время и на это.
Галочка "Заблокировать архив": Если Вам нравиться секс с пересборкой архива, то ставьте. Но я рекомендую делать это в последний момент. Я скажу, как. Кстати, есть 56792 для снятия блокировки.
Открываем вкладку "Дополнительно". Если вы используете информацию для восстановления, то установите значение в соответствующем поле. Рекомендую 5%. Теперь ищите кнопку "Параметры SFX".
Вкладка "Общие":
Поле "Путь для распаковки": Если мы ставим полезную утилиту, то просто пишем название папки(в нашем случае "Locate32"), если игру, то пишем "C:\Games\Zuma". Соответственно в первом случае переключатель должен стоять в положении "Создать в папке 'Program Files'", а во-втором "Абсолютный путь".
Галочка "Сохранять и восстанавливать пути": нужна лишь в том случае, если мы работаем с регулярно обновляемой программой, апдейты которой распаковываются в одно и тоже место. Игнорируйте галочку.
Поле "Выполнить до установки": сюда мы вводим Install.cmd. Если батник/программа лежат не в корне архива, а, предположим, в папке "bin", то указываем путь bin\Install.cmd. Вообщем в архиве пути выглядят так-же, но там нет понятия "имя диска" и пути растут от корня архива.
Вкладка "Текст и графика"
Не надо сидеть и выдумывать тексты, если всё придумано до вас. Нажимайте "Загрузить текст из файла" и выбирайте файл Readme от своего подопытного. Там уже все написано, и версия с билдом, и системные требования и... И всё! Загружайте значок icon.ico, который вы выдрали из EXE-файла подопытного, если найдется логотип(Он, кстати, в подопытном есть, можно выковырять. Правда он горизонтальный, не впишеться. Как вписать, я расскажу потом).
Вкладка "Лицензия"
Не стоит заполнять эту вкладку, если не хотите тратить время на "Согласен с условиями", к тому же подопытный имеет текст лицензии GNU в файле Readme. Достаточно проследить, чтобы файл License.txt попал в архив и сопровождал подопытного. Если же хотите сделать всё правильно, то загрузите его в SFX.
Вкладка "Режимы"
Выбираем "Не показывать начальный диалог". Можно, конечно, выбрать "Скрыть всё", но тогда мы не будем видеть полосочки с заветными процентами, которая так радует глаз в больших архивах. Словом, если вы уверены, то делайте выбор сами.
Вкладка "Дополнительно"
На всякий случай установите галочку "Запрос административного доступа", чтобы вашу работу не испортил UAC, тот что в Windows Vista/7. Теперь жмем "Добавить ярлык...".
http://gyazo.com/2dec128759f2d77f27bba343156d9678.png
Не забывайте, что путь к файлу нужно писать ОТ КОРНЯ АРХИВА.
Тем-же манером создаем ярлык для обновления баз. Только теперь в поле "Имя файла" мы пишем locate32.exe -u. Рекомендую расположить 2 ярлычка в папке "Пуск\Программы"
http://gyazo.com/16e01c45564c3a47273a4d792901f597.png
Добавив ярлыки и перепроверив все настройки нажимаем "Сохранить текущие параметры, как стандартные"(на вкладке "Общие"), чтобы в следующий раз видеть что и где изменять.
Теперь жмем ОК и попадаем в предидущее окно. Открываем вкладку "Время" и снимаем галочку "Сохранять точное время изменения файлов", для идеальности. Проверяем и жмем кнопку ОК.
http://gyazo.com/7c5ed9d66b1955ab1ca677413128ca5f.png
3. Работа над ошибками
SFX-Архив можно модифицировать WinRaR-ом, да-да. Сначала мы запустим его. Если не всё работает нормально, то:
Правой клавишей на продукте, WinRaR, Открыть в WinRaR. Там нам дана кнопка "SFX"
http://gyazo.com/b0fde00adaba311d7fe0b049e9823193.png
Так-же вы можете самостоятельно научиться править SFX через коментарии, как правило это упрощает создание больших количеств ярлыков.
Обратите внимание, что отладку CMD-файлов, скриптов, свистелок и перделок следует ВНЕ архива. После исправления этих ошибок вы можете перетащить все файлы из папки в окно архива.
При этом Вас спросят параметры архива вновь. Постарайтесь сделать их такими-же. Только SFX-параметры трогать вообще не нужно.
http://gyazo.com/1551d828da93dddad15535c02c426819.png
4. Логотип
Откройте SFX-архив программой ResHacker, выберите слева Dialog\STARTDLG
http://gyazo.com/524824b7db21df3da96ba91cf6a415ae.png
Логотип программы имеет размер 442*80. Задаем размеры поменьше, теперь растягиваем объекты так, чтобы уместить логотип. Обратите внимание, что на панели ResHacker'а показываются координаты и размеры выделеных объектов, а для точного перетаскивания можно воспользоваться стрелками на клавиатуре. Либо, если вы сообразительны и быстро понимаете всякие принципы, то просто отредактируйте текст под формой.
Если вы не зашили логотип при сборке архива, то самое время сделать это сейчас. Ресурс лежит в разделе BitMap. Обратите внимание, что следует сохранить формат. Кстати, размер объектов в ResHacker'е указан в твипах. Учтите это при подгонке рисунка.
5. Блокировка архива
Открываем SFX-архив в WinRaR, жмем на панели кнопку "Информация", вкладка "Параметры", галочка "Запретить изменения архива". Рекомендую создать резервную копию.
http://gyazo.com/ba99d307451ca0586832e5af218acf0a.png
Не забывайте, что WinRaR - платная программа.
В силу ограничений выкладываю эту работу на RGHost'е (http://rghost.ru/3734566)
Механизмы программы:
Иногда, для достижения эффекта русификации достаточно одного из 2-х вариантов:
- Удалить все локализации, кроме русской
- Перезаписать файл локализации по умолчанию русскоязычным файлом
Так-же подобные настройки нередко храняться в INI и CFG файлах.
Работа с реестром в CMD/BAT файлах
Утилита REG дает нам возможность проводить любые манипуляции с реестром. Полезно знать синтаксис работы с ней. Для получения справки введите в командной строке "REG /?"
Начнем с примера - Locate32.
http://gyazo.com/38ab33ac1da0c8cddecbed39335756c8.png
1. Механизмы программы
Для начала нужно обратить на такие детали, как настройки программы. Подопытный имеет возможность хранить свои настройки и в файле и в реестре, по желанию. Чтобы не задавать потом вопросов, мы рассмотрим вариант работы с реестром сразу.
Программа имеет только один критически важный параметр, который нам нужно перенести: язык интерфейса. Сразу настройте эту опцию у себя на машине, сохраните настройки путем выхода из программы. А теперь пройдемте в реестр, Господа:
http://gyazo.com/52effdf964c75c2097113f03e68ab217.png
Очевидно, что этот параметр отвечает за выбранный язык интерфейса. Открываем блокнот, сохраняем файл "Install.cmd" в папке с Подопытным.
Теперь пишем в нем:
REG DELETE HKCU\Software\Update /f
REG ADD HKCU\Software\Update\Locate32 /v Language /t REG_SZ /d Lan_ru.dll
Первая строка удаляет раздел реестра, чтобы вычистить настройки, вторая создает ключ с указанием языка.
Вопрос с настройками мы решили. Обратимся к специфике первого запуска: Что делает программа, когда её запускают в первый раз? Она делает настройки, ассоциируется с файлами и обновляет всякие свои базы данных. Пациент активно работает с базой данных, которую при первом запуске нужно создать. Обращаемся к файлу справки нашей программы, ищем ключ, отвечающий за выполнение подобных операций.
http://gyazo.com/67ce5419c06b0243b747044b693dcdfa.png
Отлично, ключ -u. Добавим его в наш Install.cmd
Так-же нам нужна иконка для SFX-архива. Её можно извлечь такими программами, как ResHacker, Restorator и т.д. Извлеките её и положите в папку с программой, дав ей имя "Icon"(Для однозначности).
http://gyazo.com/e66a7e787fe00353e8be44c1649a40e3.png
start locate32.exe -u
Сохраните файл. Для проверки результата своей работы удалите из реестра раздел с настройками, перенесите программу в другую папку и запустите Install.cmd. Все прошло гладко? Язык русский? Это хорошо, ведь это значит, что мы будем делать архив.
2. Знакомтесь: Архив. SFX-Архив.
Программирование это Дзен. Хоть мы и не пишем программу, а делаем архив, мы всё равно должны помнить о Дзене и забыть о привязанностях, поэтому не жмите на папочку Locate32, в поисках "Добавить в архив...", а зайдите в неё и добавьте СОДЕРЖИМОЕ ПАПКИ, поскольку название конечной папки должен выбирать пользователь. Смотрите (http://gyazo.com/fcf8a3f06abd350342d0f21139cffee7.png), если вы не поняли, что я имею в виду.
Теперь смело жмите "Добавить в архив".
http://gyazo.com/0f967542089800d4874e6afaf170181f.png
Галочка "Создать SFX-архив": Ставим, иначе ничего не получится.
Выпадающий список "Метод сжатия": На маленьких программках можно ставить "Максимальный". Если вы пакуете большую игру или папку с музыкой(лол) то не стоит сжимать вообще. Ну если только немножко.
Галочка "Добавить электронную подпись": Если у Вас своя собственная лицензионная копия WinRaR, зарегистрированая на Вас, то отметьтесь, как автор этого творения. Если у Вас пиратский WinRaR, то вы предпишете авторство владельцу лицензионного ключа.
Галочка "Добавить информацию для восстановления": Если Вы собираетесь таскать эти программы на компакт-дисках, которые любят царапаться, то стоит потратить время и на это.
Галочка "Заблокировать архив": Если Вам нравиться секс с пересборкой архива, то ставьте. Но я рекомендую делать это в последний момент. Я скажу, как. Кстати, есть 56792 для снятия блокировки.
Открываем вкладку "Дополнительно". Если вы используете информацию для восстановления, то установите значение в соответствующем поле. Рекомендую 5%. Теперь ищите кнопку "Параметры SFX".
Вкладка "Общие":
Поле "Путь для распаковки": Если мы ставим полезную утилиту, то просто пишем название папки(в нашем случае "Locate32"), если игру, то пишем "C:\Games\Zuma". Соответственно в первом случае переключатель должен стоять в положении "Создать в папке 'Program Files'", а во-втором "Абсолютный путь".
Галочка "Сохранять и восстанавливать пути": нужна лишь в том случае, если мы работаем с регулярно обновляемой программой, апдейты которой распаковываются в одно и тоже место. Игнорируйте галочку.
Поле "Выполнить до установки": сюда мы вводим Install.cmd. Если батник/программа лежат не в корне архива, а, предположим, в папке "bin", то указываем путь bin\Install.cmd. Вообщем в архиве пути выглядят так-же, но там нет понятия "имя диска" и пути растут от корня архива.
Вкладка "Текст и графика"
Не надо сидеть и выдумывать тексты, если всё придумано до вас. Нажимайте "Загрузить текст из файла" и выбирайте файл Readme от своего подопытного. Там уже все написано, и версия с билдом, и системные требования и... И всё! Загружайте значок icon.ico, который вы выдрали из EXE-файла подопытного, если найдется логотип(Он, кстати, в подопытном есть, можно выковырять. Правда он горизонтальный, не впишеться. Как вписать, я расскажу потом).
Вкладка "Лицензия"
Не стоит заполнять эту вкладку, если не хотите тратить время на "Согласен с условиями", к тому же подопытный имеет текст лицензии GNU в файле Readme. Достаточно проследить, чтобы файл License.txt попал в архив и сопровождал подопытного. Если же хотите сделать всё правильно, то загрузите его в SFX.
Вкладка "Режимы"
Выбираем "Не показывать начальный диалог". Можно, конечно, выбрать "Скрыть всё", но тогда мы не будем видеть полосочки с заветными процентами, которая так радует глаз в больших архивах. Словом, если вы уверены, то делайте выбор сами.
Вкладка "Дополнительно"
На всякий случай установите галочку "Запрос административного доступа", чтобы вашу работу не испортил UAC, тот что в Windows Vista/7. Теперь жмем "Добавить ярлык...".
http://gyazo.com/2dec128759f2d77f27bba343156d9678.png
Не забывайте, что путь к файлу нужно писать ОТ КОРНЯ АРХИВА.
Тем-же манером создаем ярлык для обновления баз. Только теперь в поле "Имя файла" мы пишем locate32.exe -u. Рекомендую расположить 2 ярлычка в папке "Пуск\Программы"
http://gyazo.com/16e01c45564c3a47273a4d792901f597.png
Добавив ярлыки и перепроверив все настройки нажимаем "Сохранить текущие параметры, как стандартные"(на вкладке "Общие"), чтобы в следующий раз видеть что и где изменять.
Теперь жмем ОК и попадаем в предидущее окно. Открываем вкладку "Время" и снимаем галочку "Сохранять точное время изменения файлов", для идеальности. Проверяем и жмем кнопку ОК.
http://gyazo.com/7c5ed9d66b1955ab1ca677413128ca5f.png
3. Работа над ошибками
SFX-Архив можно модифицировать WinRaR-ом, да-да. Сначала мы запустим его. Если не всё работает нормально, то:
Правой клавишей на продукте, WinRaR, Открыть в WinRaR. Там нам дана кнопка "SFX"
http://gyazo.com/b0fde00adaba311d7fe0b049e9823193.png
Так-же вы можете самостоятельно научиться править SFX через коментарии, как правило это упрощает создание больших количеств ярлыков.
Обратите внимание, что отладку CMD-файлов, скриптов, свистелок и перделок следует ВНЕ архива. После исправления этих ошибок вы можете перетащить все файлы из папки в окно архива.
При этом Вас спросят параметры архива вновь. Постарайтесь сделать их такими-же. Только SFX-параметры трогать вообще не нужно.
http://gyazo.com/1551d828da93dddad15535c02c426819.png
4. Логотип
Откройте SFX-архив программой ResHacker, выберите слева Dialog\STARTDLG
http://gyazo.com/524824b7db21df3da96ba91cf6a415ae.png
Логотип программы имеет размер 442*80. Задаем размеры поменьше, теперь растягиваем объекты так, чтобы уместить логотип. Обратите внимание, что на панели ResHacker'а показываются координаты и размеры выделеных объектов, а для точного перетаскивания можно воспользоваться стрелками на клавиатуре. Либо, если вы сообразительны и быстро понимаете всякие принципы, то просто отредактируйте текст под формой.
Если вы не зашили логотип при сборке архива, то самое время сделать это сейчас. Ресурс лежит в разделе BitMap. Обратите внимание, что следует сохранить формат. Кстати, размер объектов в ResHacker'е указан в твипах. Учтите это при подгонке рисунка.
5. Блокировка архива
Открываем SFX-архив в WinRaR, жмем на панели кнопку "Информация", вкладка "Параметры", галочка "Запретить изменения архива". Рекомендую создать резервную копию.
http://gyazo.com/ba99d307451ca0586832e5af218acf0a.png
Не забывайте, что WinRaR - платная программа.
В силу ограничений выкладываю эту работу на RGHost'е (http://rghost.ru/3734566)
Механизмы программы:
Иногда, для достижения эффекта русификации достаточно одного из 2-х вариантов:
- Удалить все локализации, кроме русской
- Перезаписать файл локализации по умолчанию русскоязычным файлом
Так-же подобные настройки нередко храняться в INI и CFG файлах.
Работа с реестром в CMD/BAT файлах
Утилита REG дает нам возможность проводить любые манипуляции с реестром. Полезно знать синтаксис работы с ней. Для получения справки введите в командной строке "REG /?"