Створення SFX архіву з додатком

У цій інструкції я познайомлю вас із ще однією чудовою можливістю SFX Creator, яка недокументована через те, що мета досягається шляхом логічного мислення, та й саму інструкцію я пишу тільки через те, що один із користувачів програми поставив питання в темі обговорення SFX Creator на форумі OSZone, а чи можливо створити подібний архів у SFX Creator, який сам себе перепаковуватиме? Починаючи з версії 2.8 RC , SFX Creator може створювати самооновлювані SFX архіви через деякі додані можливості (наприклад, змінної $PROJECT ), розберемо конкретний приклад, що це за архів і навіщо такий архів може знадобитися.

Приклад потреби, знову ж таки, візьму з повідомлення, заданого користувачем SFX Creator: Необхідно створити архів з програмою (розглядатимемо Total Commander, далі TC), після запуску SFX архів розпаковує TC в тимчасову папку, запускає додаток, чекає його завершення, у програмі змінюються налаштування, програма завершується і наш архів перепаковується, зберігаючи всі налаштування програми, які вніс користувач при роботі з програмою.

Т.к. TC зберігає налаштування в папці з програмою - нам набагато простіше, не потрібно прописувати додаткові команди, досить просто упаковати папку TC Примітка. Якщо ваша програма звертається до реєстру - у проекті додаєте імпорт даних до реєстру перед запуском програми та експорту з реєстру після завершення роботи вашої програми

Увага! Виконуйте суворо інструкції, не вводьте свої дані, де про це не згадується, інакше у вас нічого не вийде!

Головні налаштування проекту

Ім'я проекту: Total Commander_UniSFX (можна вибрати своє, ПОВИННО збігатися з ім'ям збереженогопроекту! (директорії з файлами проекту) ) Директорія установки: $TEMP\$ Іконка SFX архіву: $PROJECT\icon.ico Зберегти SFX архів у файл: $PROJECT\$.exe

Додаткові налаштування проекту

Переходимо в Налаштування проекту Обов'язково ставимо галочку Тиха компіляція Натискаємо кнопку збереження проекту та вводимо Ім'я проекту з головного вікна SFX Creator (в даному прикладі - Total Commander_UniSFX ) Після збереження проекту відразу ж відкриваємо папку проекту, жовтої папки в діалозі Налаштування проекту Додаємо файл іконки, який буде у нашого SFX архіву, кидаємо файл з ім'ям icon.ico у відкриту нами папку проекту

Додавання записів із файлами проекту

Додаткові дії: У папку проекту розпаковуємо цей архів, це мінімальний набір файлів SFX Creator та дистрибутива NSIS ( 2 Мб ), необхідних для прихованої компіляції без використання графічних можливостей та SFX Creator, і при створенні SFX архіву Цим записом ми додаємо урізаний дистрибутив до нашого SFX архіву, після роботи нашої програми іменної дана копія SFX Creator буде перепаковувати SFX архів

Цим записом ми розпаковуємо урізаний дистрибутив SFX Creator в папку урізаного дистрибутива (каша? ;) ), щоб при наступному складанні SFX архіву урізане складання не загубилося

Додаткові дії: У папці проекту створюємо директорію AppFiles і копіюємо до неї файли TC так, щоб головний файл Totalcmd.exe опинився в самій папці AppFiles Думаю зрозуміло, додаємо файли програми в проект

Додаємо розпакування файлу іконки проекту, щоб наступні зборки завершилися вдало.

Файл проекту, який зараз у вас активний - теж піде в архів відразу ж у оновленому вигляді

Додаткові дії: У папку проектурозпаковуємо цей архів, це скрипт самовидалення нашого SFX архіву та заміна його оновленою версією при завершенні роботи нашої програми. Скрипт універсальний і в ньому прописувати нічого не потрібно, як ви любите ;)

Запускаємо програму, перескладання архіву із заміною оновленою версією

Обов'язково ставимо галочку Не чекати завершення виконання