Предоставляю вам рабочий скрипт для , на мой взгляд, самого лучшего установщика
Inno.
Немного теории...Для подготовленный пользователей установка русификатора не составляет проблем, мозги и руки срабатывают в унисон автоматом.
Но для начинающих пользователей установка русификатора это танцы с бубном, а если установщика нет и предлагается замена папок - настает полный пипец.
Итак, что должен уметь установщик, чтобы конечный пользователь не испытывал этих неудобств.
Что могёт этот скрипт?1. Автоматически определяет папку установки и обновляемые файлы, если найдены, то установка продолжится, если нет, то вас оповестят об этом.
2. Проверяет вначале установки запущена ли обновляемая программа. Если выполняется, то будет предложено завершить процесс и продолжить или прекратить установку русификатора. Если пользователь продолжил установку, то все обновляемые файлы будут перемещены в папку
Backup.
3. Проверяет контрольную сумму обновляемого файла. Исход обычный - или установка или пишите письма на деревню дедушке.
4. Так как русификаторы я создаю для своего сайта, то вставил фишку проверки внешнего файла на присутствие и на целостность. Исход такой же, как пунктом выше.
5. И немаловажная фишка - если по какой то причине пользователю не понравился русификатор, и он хочет вернуть все назад, то ему просто надо запустить деинсталляцию русификатора. При этом будет проверка запущена ли программа. Если выполняется, то будет предложено завершить процесс и продолжить или прекратить удаление. Если пользователь продолжил удаление, то все сохраненные файлы в папке
Backup будут перемещены на их родное место.
А теперь скрипт и немного описания, я коротко на каждую функцию вставил уже туда.
На этой картинке все обычно, вставляете свои данные и всего делов то. Вверху данные
Inno Setup Preprocessor.
Единственно я использую для сборок и русификаторов разные файлы языка (внизу). Этот файл в архиве.
Спойлер [+]
Это файлы, которые нужно вставить в программу. Все прописывается как в блокноте напрямую - пути и имена.
За выделенное напишу ниже.
Спойлер [+]
Это работа с реестром. Например в этой программе надо было при вставке файла-лекарства
LicenseMgr.dll очистить ветку реестра перед установкой русификатора.
Зачем? Просто если уже был установлен ключ от версии
EaseUS Partition Master Pro, а это лекарство для
EaseUS Partition Master Technician Edition, то запустить программу вам не удастся. Нужно вручную зайти в реестр и удалить ветку. Здесь же делает это за вас установщик. Обратите внимание - для 32-бит и 64-бит разные ключи. Реализовывается это просто - на картинке где стрелка 2 для 64-бит, а где стрелка 3 для 32-бит. Стрелка 1 удаляет ветку перед установкой.
Спойлер [+]
Если надо прописать значения, вот пример скрипта, здесь я перенес строки чтобы влезли на картинку.
Спойлер [+]
Это задачи, тут вы можете прописывать что угодно. Установлены радиокнопки одного действия. Только один выбор - или одно или другое.
Задача
doktor подключает файл
LicenseMgr.dll в работу и он заносится в папку с программой. Ну а если выбрали другое, то установка происходит без лекарства.
Спойлер [+]
Вот мы и подобрались к самому интересному. Это код бэкапа, он работает вместе с файлами - нужно прописать
BeforeInstall: CreateBackup для каждого заменяемого файла.
Смотрите второй рисунок сверху где раздел
Files. Все бэкапится в папку
Backup. Для работы этого кода нужен скрипт
SHFileOperation.iss. Положил в архив.
Спойлер [+]
Это проверка проверка MD5 ехе-файла, стрелки указывают что нужно заменить для своих целей.
Спойлер [+]
Это проверка проверка MD5 внешнего файла, стрелки указывают что нужно заменить для своих целей.
Этот файл должен всегда быть рядом с установщиком. При любых действиях с ним русификатор не установится.
Вы можете прицепить любой файл.
Спойлер [+]
Это проверка на присутствие определенных файлов в папке с установленной программой, стрелки указывают что нужно заменить для своих целей.
Спойлер [+]
Это проверка на присутствие файла рядом с установщиком. Если его нет рядом с ним то русификатор не установится.
Спойлер [+]
Это проверяется запущена ли программа при удалении русификатора, стрелки указывают что нужно заменить для своих целей.
Спойлер [+]
Это проверяется запущена ли программа при установке русификатора, стрелки указывают что нужно заменить для своих целей.
Спойлер [+]
Но вот в принципе и вся сказка...
Еще раз напоминаю - не переносите строки в рабочем скрипте как на картинках - это я сделал чтобы уменьшить их размер.
Качаем архив...Вашей группе Гости запрещён просмотр скрытого текста.