(03-08-2018 20:53:28 отредактировано WYLEK) 0

Тема: Скрипт русификатора

Скрипт русификатора

Предоставляю вам рабочий скрипт для , на мой взгляд, самого лучшего установщика 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 внешнего файла, стрелки указывают что нужно заменить для своих целей.
Этот файл должен всегда быть рядом с установщиком. При любых действиях с ним русификатор не установится.
Вы можете прицепить любой файл.

Показать / Скрыть текст

Скрипт русификатора

Это проверка на присутствие определенных файлов в папке с установленной программой, стрелки указывают что нужно заменить для своих целей.

Показать / Скрыть текст

Скрипт русификатора

Это проверка на присутствие файла рядом с установщиком. Если его нет рядом с ним то русификатор не установится.

Показать / Скрыть текст

Скрипт русификатора

Это проверяется запущена ли программа при удалении русификатора, стрелки указывают что нужно заменить для своих целей.

Показать / Скрыть текст

Скрипт русификатора

Это проверяется запущена ли программа при установке русификатора, стрелки указывают что нужно заменить для своих целей.

Показать / Скрыть текст

Скрипт русификатора


Но вот в принципе и вся сказка...
Еще раз напоминаю - не переносите строки в рабочем скрипте как на картинках - это я сделал чтобы уменьшить их размер.


Качаем архив...

Показать / Скрыть текст

Архив

Скрипт русификатора

Рейтинг поста: 0

(03-08-2018 20:54:45 отредактировано WYLEK)

Re: Скрипт русификатора

Я бы скачал, но он где-то за облаками спрятался...

Залил на другое облако Скрипт русификатора

Скрипт русификатора

Рейтинг поста: 0

Re: Скрипт русификатора

Я как мужика с молотком на главной увидел и надпись "Универсальный скрипт русификатора...", то грешным делом подумал ,что ты предлагаешь таким макаром русики устанавливать. Скрипт русификатора Порадовал.
Статья отличная. Но думаю, что нужен некоторый опыт работы с этим инсталлятором, чтобы во всем этом разобраться. Начинающие утонут. Как пожелание, пронумеруй картинки, тогда в описании легче будет делать отсылку (см. рис. 2).

Кто ищет, тот всегда найдет!
Скрипт русификатора

Рейтинг поста: 0

(03-08-2018 20:55:26 отредактировано WYLEK)

Re: Скрипт русификатора

Как пожелание, пронумеруй картинки, тогда в описании легче будет делать отсылку

Да, упустил это. Но для начинающих делать нечего - это для подготовленных пользователей.
Кстати, не все вручную надо прописывать - в настройках кроме кода можно установкой гальки прописать Скрипт русификатора

Скрипт русификатора

Рейтинг поста: 0

(03-08-2018 20:56:17 отредактировано WYLEK)

Re: Скрипт русификатора

Скрипт русификатора пробовал  с помощью Inno Extractor выдернуть скрипт и посмотреть, но все время фигушки  Скрипт русификатора

предлагается замена папок - настает полный пипец.

Для этого есть простенькая программа Patch Maker  конечна она лишена многих прелестей, но патчер сделает любой юзер.
Урок суперный, главное его теперь в свою голову запихать. Спасибо

Рейтинг поста: 0

(03-08-2018 20:58:15 отредактировано WYLEK)

Re: Скрипт русификатора

Начинающие утонут.

Да, это так! Ещё в июне ушёл в изучение Inno Setup, так и не вышел. Сложно, но какая радость когда что то выходит! (Особенно что нибудь в секции  Код)

WYLEK, я бы на вашем месте сделал так. Меньше изменять под новый русификатор.

Показать / Скрыть текст

Скрипт русификатора

За статью спасибо. Может что нибудь нового узнаю.

Всё сложно снять, что грамотно одето!..

Рейтинг поста: 0

(03-08-2018 20:58:59 отредактировано WYLEK)

Re: Скрипт русификатора

Как это всё происходит, считывается запись (#define MyAppName "Тут название") и считанное записывается туда где стоит {# MyAppName}

Нет, в секции Code прописывать только вручную.

Мое первое знакомство с Inno Setup было ровно 1 минута...
Больше года и не подходил к этому установщику, а теперь я и не помню сколько лет другого мне и не надо.
У нас на сайте есть Мастер кода Gnom, так что если есть проблемы - пишите, я думаю он поможет.

Скрипт русификатора

Рейтинг поста: 0

(03-08-2018 20:59:44 отредактировано WYLEK)

Re: Скрипт русификатора

Нет, в секции Code прописывать только вручную.

Почему? Я делаю так как написал выше и всё работает, можете попробовать.

Я  познакомился с Inno Setup так же. Товарища Gnom"a видел на сайте и знаком с его работами но всё равно спасибо за совет.

Всё сложно снять, что грамотно одето!..

Рейтинг поста: 0

(03-08-2018 21:01:57 отредактировано WYLEK)

Re: Скрипт русификатора

не получается прикрутить к скрипту вот это

// -------------Описание: Команда WYLEK.RU--------------------------------------

var

MouseLabel,SiteLabel: TLabel;

procedure SiteLabelOnClick(Sender: TObject);

var

ErrorCode: Integer;

begin

ShellExec(`open`, `http://www.wylek.ru`, ``, ``, SW_SHOWNORMAL, ewNoWait, ErrorCode)

end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

SiteLabel.Font.Color:=clRed

end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

SiteLabel.Font.Color:=clBlue

end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

SiteLabel.Font.Color:=clGreen

end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

SiteLabel.Font.Color:=clBlue

end;

procedure InitializeWizard8();

begin

MouseLabel:=TLabel.Create(WizardForm)

MouseLabel.Width:=WizardForm.Width

MouseLabel.Height:=WizardForm.Height

MouseLabel.Autosize:=False

MouseLabel.Transparent:=True

MouseLabel.OnMouseMove:=@SiteLabelMouseMove2

MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)

SiteLabel.Left:=10

SiteLabel.Top:=320

SiteLabel.Cursor:=crHand

SiteLabel.Font.Color:=clBlue

SiteLabel.Caption:=`Сайт русификации`

SiteLabel.OnClick:=@SiteLabelOnClick

SiteLabel.OnMouseDown:=@SiteLabelMouseDown

SiteLabel.OnMouseUp:=@SiteLabelMouseUp

SiteLabel.OnMouseMove:=@SiteLabelMouseMove

SiteLabel.Parent:=WizardForm

end;

procedure HideInstallPath();

begin

WizardForm.FileNameLabel.Visible := False;

end;

//*******//

procedure ShowInstallPath();

begin

WizardForm.FileNameLabel.Visible := True;

end;

Возможно всё! На невозможное просто требуется больше времени.
Мудрец из Шангри Ла
Скрипт русификатора

Рейтинг поста: 0

Re: Скрипт русификатора

gazon01, скрипт свой дай. Можно в личку.

Рейтинг поста: 0

(03-08-2018 21:02:51 отредактировано WYLEK)

Re: Скрипт русификатора

WYLEK,  с защитой от распаковки разобрался, надо было к ISTask.dll дописать noencryption и всего то блин  Скрипт русификатора  

вот так

 
[Files]Source: dllISTask.dll; DestDir: {app}; Flags: ignoreversion noencryption

Возможно всё! На невозможное просто требуется больше времени.
Мудрец из Шангри Ла
Скрипт русификатора

Рейтинг поста: 0

(03-08-2018 21:04:05 отредактировано WYLEK)

Re: Скрипт русификатора

с защитой от распаковки разобрался, надо было к ISTask.dll дописать noencryption и всего то блин

Молоток Скрипт русификатора но зачем это тебе надо? Утащат русифицированные файлы а не скрипт установщика.

Скрипт русификатора

Рейтинг поста: 0

(03-08-2018 21:05:47 отредактировано WYLEK)

Re: Скрипт русификатора

Утащат русифицированные файлы а не скрипт установщика.

ну так для этого надо ещё распаковать или установить программу, ведь там проверка на MD, простому Пупкину это уже будет не интересно, да и так, просто ради прикола

Gnom, ответил в ЛС Скрипт русификатора Скрипт русификатора

Возможно всё! На невозможное просто требуется больше времени.
Мудрец из Шангри Ла
Скрипт русификатора

Рейтинг поста: 0

Re: Скрипт русификатора

От души !!! Благадарен Вам Уважаемый...! WYLEK

Windows XP Professional 5.1.2600.2158 SP2(x86_x64)

Рейтинг поста: 0