Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 3]

Ветеран


Сообщения: 1133
Благодарности: 581


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


в шапке "Русская справка" http://sabbathblacklab.narod.ru/rus2/is5hlp.rar
открываешь и читаешь по порядку

вот еще
Инструкция по Inno Setup - Инструкция по Inno Setup в формате PDF для начинающих от sjwrec. http://ifolder.ru/20364329

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:39, 21-06-2011 | #2001



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для nik1967

Старожил


Сообщения: 440
Благодарности: 251

Профиль | Сайт | Отправить PM | Цитировать


R.i.m.s.k.y., а, это всё есть. Я то думал
Цитата nik1967:
учебник »
настоящий.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 10:03, 21-06-2011 | #2002


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата nik1967:
а, это всё есть. »
мне и это не понадобилось, самодуром допер до простых вещей

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 10:25, 21-06-2011 | #2003


Аватара для nik1967

Старожил


Сообщения: 440
Благодарности: 251

Профиль | Сайт | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
мне и это не понадобилось, самодуром допер до простых вещей »
Ага, аналогично. Но хелп тоже здорово помогает. Пардон за Заканчиваем флуд

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 11:30, 21-06-2011 | #2004


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Neutron:
Доброго времени суток!
1) Подскажите, как сделать такое?
Скрин »
Neutron, только инсталлер. Требует китайского компилятора. Деинсталлятор мне банально лень рисовать .
Скрипт

Код: Выделить весь код
;5.4.2
#ifndef IS_ENHANCED
    #error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif

#define AppName "Test"
#define AppVerName "Test"


[Setup]
AppName={#AppName}
AppVerName={#AppVerName}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
OutputBaseFilename=test
Compression=lzma
LicenseFile={app}\test.txt
InfoBeforeFile={app}\test.txt
InfoAfterFile={app}\test.txt
AllowNoIcons=yes
AlwaysRestart=yes
BitmapResource=bgnd:embedded\background.bmp|bar:embedded\bar.bmp|pic1:embedded\pic-1.bmp|pic2:embedded\pic-2.bmp|pic3:embedded\pic-3.bmp|pic4:embedded\pic-4.bmp

[Files]
Source: {app}\test.txt; DestDir: {app}

[Icons]
Name: {group}\Test; Filename: {app}\test.txt

[Components]
Name: a; Description: a; Types: test custom
Name: b; Description: b; Types: custom

[Types]
Name: custom; Description: custom; Flags: iscustom
Name: test; Description: test

[Tasks]
Name: test; Description: test; GroupDescription: test

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[code]
var
    x, y, y1: Integer;
    i: Byte;

procedure InitializeWizard();
begin
    with WizardForm do
    begin
        PageNameLabel.Hide;
        PageDescriptionLabel.Hide;
        WizardBitmapImage.Hide;
        WizardBitmapImage2.Hide;
        WizardSmallBitmapImage.Hide;
        MainPanel.Hide;
        Bevel1.Hide;
        WelcomePage.Hide;
        LicenseLabel1.Hide;
        LicenseAcceptedRadio.Hide;
        LicenseNotAcceptedRadio.Hide;

        ClientHeight := ScaleY(480);
        ClientWidth := ScaleX(640);

        //WizardBitmapImage
        with TBitmapImage.Create(WizardForm) do
        begin
            Parent := WizardForm;
            Bitmap.LoadFromResourceName(HInstance, '_IS_BGND');
            Align := alClient;
            SendToBack;
        end;

        //WizardSmallBitmapImage
        with TBitmapImage.Create(WizardForm) do
        begin
            Parent := WizardForm;
            Bitmap.LoadFromResourceName(HInstance, '_IS_BAR');
            Width := Bitmap.Width;
            Height := Bitmap.Height;
            Name := 'Bar';
        end;

        //PageNameLabel
        with TLabel.Create(WizardForm) do
        begin
            Parent := WizardForm;
            Font.Size := TBitmapImage(WizardForm.FindComponent('Bar')).Height div 2 - TBitmapImage(WizardForm.FindComponent('Bar')).Height div 20;
            Font.Name := 'Arial';
            Font.Color := clWhite;
            Left := TBitmapImage(WizardForm.FindComponent('Bar')).Width div 30;
            Top := (TBitmapImage(WizardForm.FindComponent('Bar')).Height - Height) div 2;
            Transparent := True;
            Caption := ExpandConstant('{#AppVerName}');
        end;

        //Buttons
        NextButton.Left := ClientWidth - NextButton.Width - NextButton.Width div 4;
        NextButton.Top := ClientHeight - NextButton.Height - NextButton.Height div 4;
        BackButton.Left := NextButton.Left - NextButton.Width - NextButton.Width div 8;
        BackButton.Top := NextButton.Top;
        CancelButton.Left := BackButton.Left - BackButton.Width - BackButton.Width div 8;
        CancelButton.Top := NextButton.Top;

        //Bevel
        with TBevel.Create(WizardForm) do
        begin
            Parent := WizardForm;
            SetBounds(Bevel1.Left, TBitmapImage(WizardForm.FindComponent('Bar')).Height, WizardForm.ClientWidth, Bevel1.Height);
            Shape := bsFrame;
            Style := Bevel1.Style;
        end;
        Bevel.Top := NextButton.Top - NextButton.Height div 4;
        Bevel.Width := ClientWidth;
        Bevel.Shape := bsFrame;
        BeveledLabel.Top := Bevel.Top - BeveledLabel.Height div 2;

        //Notebook
        x := InnerNotebook.Width;
        y := InnerNotebook.Height - ClientHeight + Bevel.Top;
        y1 := Bevel.Top - TBitmapImage(WizardForm.FindComponent('Bar')).Height - TBitmapImage(WizardForm.FindComponent('Bar')).Height div 4;
        InnerPage.Color := clWhite;
        InnerNotebook.ScaleBy(x - x div 15, x);

        //Pics
        with TBitmapImage.Create(WizardForm) do
        begin
            Parent := WizardForm;
            Bitmap.LoadFromResourceName(HInstance, '_IS_PIC1');
            SetBounds(WizardForm.ClientWidth div 3, TBitmapImage(WizardForm.FindComponent('Bar')).Height + TBitmapImage(WizardForm.FindComponent('Bar')).Height div 6, x, Bitmap.Height);
            Name := 'Bmp';
        end;

        //ListBox
        for i := 1 to 14 do
        begin
            with TLabel.Create(WizardForm) do
            begin
                Parent := WizardForm;
                AutoSize := False;
                WordWrap := True;
                Height := 26;
                Left := WizardForm.ClientWidth div 50;
                Top := (i-1)*((Bevel.Top - Bevel1.Top - WizardForm.ClientHeight div 25)/13) + Bevel1.Top + WizardForm.ClientHeight div 75;
                Width := WizardForm.ClientWidth div 3 - WizardForm.ClientWidth div 25;
                case i of
                    1: Caption := 'Добро пожаловать!';
                    2: Caption := SetupMessage(msgWizardLicense);
                    3: Caption := SetupMessage(msgWizardPassword);
                    4: Caption := SetupMessage(msgWizardInfoBefore)
                    5: Caption := SetupMessage(msgWizardUserInfo)
                    6: Caption := SetupMessage(msgWizardSelectDir)
                    7: Caption := SetupMessage(msgWizardSelectComponents)
                    8: Caption := SetupMessage(msgWizardSelectProgramGroup)
                    9: Caption := SetupMessage(msgWizardSelectTasks)
                    10: Caption := SetupMessage(msgWizardReady)
                    11: Caption := SetupMessage(msgWizardPreparing)
                    12: Caption := SetupMessage(msgWizardUninstalling)
                    13: Caption := SetupMessage(msgWizardInfoAfter)
                    14: Caption := 'Окончание';
                end;
                Transparent := True;
                Font.Color := clWhite;
                Name := '_Label_' + IntToStr(i);
            end;
        end;

        //Other
        WelcomeLabel1.Left := x div 40;
        WelcomeLabel1.Width := x - 2*WelcomeLabel1.Left;
        WelcomeLabel2.Left := x div 40;
        WelcomeLabel2.Width := x - 2*WelcomeLabel2.Left;
        LicenseAcceptedRadio.Checked := True;
        LicenseMemo.Align := alClient;
        FinishedHeadingLabel.Left := x div 40;
        FinishedHeadingLabel.Width := x - FinishedHeadingLabel.Left;
        FinishedLabel.Left := x div 40;
        FinishedLabel.Width := x - FinishedLabel.Left;
        ComponentsList.Color := clWhite;
        TasksList.Color := clWhite;
        ReadyMemo.Color := clWhite;
        RunList.Left := x div 40;
        RunList.Width := x - RunList.Left;
        YesRadio.Left := x div 40;
        NoRadio.Left := x div 40;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
    i: Byte;
begin
    if CurPageID = wpLicense then
    with WizardForm do
    begin
        OuterNotebook.SetBounds(ClientWidth div 3, TBitmapImage(WizardForm.FindComponent('Bar')).Height + TBitmapImage(WizardForm.FindComponent('Bar')).Height div 6, x, y1);
        InnerNotebook.Align := alClient;
        NextButton.Caption := 'Согласен';
    end;
    //
    if CurPageID <> wpLicense then
    with WizardForm do
    begin
        OuterNotebook.SetBounds(WizardForm.ClientWidth div 3, WizardForm.ClientHeight div 2, x, y);
        InnerNotebook.Align := alNone;
    end;
    //
    if CurPageID mod 4 = 0 then
        TBitmapImage(WizardForm.FindComponent('Bmp')).Bitmap.LoadFromResourceName(HInstance, '_IS_PIC4')
    else
        TBitmapImage(WizardForm.FindComponent('Bmp')).Bitmap.LoadFromResourceName(HInstance, '_IS_PIC' + IntToStr(CurPageID mod 4));
    //
    for i := wpWelcome to wpFinished do
    begin
        if i = CurPageID then
        begin
            TLabel(WizardForm.FindComponent('_Label_' + IntToStr(CurPageID))).Font.Style := [fsBold];
            TLabel(WizardForm.FindComponent('_Label_' + IntToStr(CurPageID))).Font.Color := clBlack;
        end
            else
        begin
            TLabel(WizardForm.FindComponent('_Label_' + IntToStr(i))).Font.Style := [];
            TLabel(WizardForm.FindComponent('_Label_' + IntToStr(i))).Font.Color := clWhite;
        end;
    end;
    //
    with WizardForm do
    begin
        OuterNotebook.ActivePage.Color := clWhite;
        InnerNotebook.SetBounds(x div 30, y div 20, x - x div 15, y - y div 10);
        InnerNotebook.ActivePage.Color := clWhite;
        InfoBeforeMemo.Height := InnerNotebook.Height - InnerNotebook.Height div 8;
        DiskSpaceLabel.Top := InnerNotebook.Height - InnerNotebook.Height div 10;
        ComponentsList.Height := InnerNotebook.Height div 2;
        ComponentsDiskSpaceLabel.Top := InnerNotebook.Height - InnerNotebook.Height div 10;
        NoIconsCheck.Top := InnerNotebook.Height - InnerNotebook.Height div 10;
        TasksList.Height := InnerNotebook.Height - InnerNotebook.Height div 5;
        ReadyMemo.Height := InnerNotebook.Height - InnerNotebook.Height div 5;
        InfoAfterMemo.Height := InnerNotebook.Height - InnerNotebook.Height div 8;
    end;
end;


2all, как определить сколько страниц инсталлятора будет показано? Пробовал по-всякому, самый простой вариант - считать страницы по свойству Visible - не подходит, врет это свойство. Временно решил через препроцессор, обрабатывая текст скрипта на предмет директив, отключающих страницы, но считать нужно и кастомные страницы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:33, 21-06-2011 | #2005


Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


insombia

К сожалению error:

Compile Error!
Line: 164
Error: Column 11:
Duplicate identifier 'CURPAGECHANGED'

Neutron

Пасиб

Отправлено: 15:00, 21-06-2011 | #2006


Аватара для valyok666

Старожил


Сообщения: 241
Благодарности: 79

Профиль | Отправить PM | Цитировать


доброго времени суток)нужно замутить такую тему)в дополнительные задачи Установка стим моделей в папку куда была установлена кс)чекбокс сделан а вот как прописать что бы устанавливало туда куда пользователь установил кс не знаю)или можно распаковку sfx архива но как прописать путь?

-------
Салтыков-Щедрин: "А надо учиться, учиться, учиться"


Отправлено: 16:06, 21-06-2011 | #2008


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


А можно замутить прогрессбар типа так как льёться вода?Чтобы по капелькам прогрессбар шел?

Отправлено: 16:13, 21-06-2011 | #2009


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата valyok666:
доброго времени суток)нужно замутить такую тему)в дополнительные задачи Установка стим моделей в папку куда была установлена кс)чекбокс сделан а вот как прописать что бы устанавливало туда куда пользователь установил кс не знаю)или можно распаковку sfx архива но как прописать путь? »
у тебя с клавиатурой что-то,залипает шифт и 0?

Цитата insombia:
А можно замутить прогрессбар типа так как льёться вода?Чтобы по капелькам прогрессбар шел? »
можно, вымучивай
а зачем такие сложности то?

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 16:26, 21-06-2011 | #2010



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход