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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

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


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

Отправлено: 03:49, 21-05-2012

 

Аватара для alert30

Ветеран


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

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


Некоторые инсталляторы (хоть из оригинального, и из диска) в середине установки может выполнять приложения, скрипты, исполняемые файлы и пр. Вот как бы это сделать? Выполнение приложения не после установки, а в середине установки; то что уже распаковалось в папку назначения.

Отправлено: 12:24, 23-06-2012 | #301



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

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


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

Ветеран


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

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


alert30, почитать в хелпе / поискать в теме про CurStepChanged и CurPageChanged

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

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

Отправлено: 12:31, 23-06-2012 | #302


Аватара для Johny777

Ветеран


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

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


alert30,
вот пример подобных действий
вместо блокнота можно запустить архив с параметрами и извлечь куда надо
(библиотеки для примера лежат, как файлы)
можно ещё и к позиции прогрессбара прикрутить, но не думаю, что это правильно
делал так со звуками (ну чтоб говорило 10%, 20%...), но дело в том, что позиция скажем на середине может быть там секунды две
поэтому файлы начинали проигрываться несколько раз
в пример в архиве (или коде ниже) действие после распаковки какого-то файла (а это намного лучше)
если тебе нужно запустить архив ближе к началу установки или концу, то из справки мы узнаём о том, что файлы извлекаются в том порядке в котором записаны
в секции, а удаляются в обратном
те ты можешь прикинуть где лучше и после какого файла извлечь, чтоб достичь желаемого результата

код:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=MyProg
AppVerName=MyProg
DefaultDirName={pf}\MyProg
DefaultGroupName=MyProg

[Files]
Source: 1.dll; DestDir: {app}; AfterInstall: Patch()
Source: 2.dll; DestDir: {app}; AfterInstall: Patch()

[  Code]
procedure Patch;
var
  ResultCode: Integer;
begin
  case ExtractFileName(ExpandConstant(CurrentFileName)) of
    '1.dll': begin
               if Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
                 MsgBox('Hello.', mbInformation, MB_OK);
               if ResultCode=0 then WizardForm.CancelButton.OnClick(nil);
             end;
    '2.dll': if Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
               MsgBox('Hello 2.', mbInformation, MB_OK);
  end;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:=False;
end;


наглядный пример в архиве:

Последний раз редактировалось Johny777, 26-03-2013 в 15:58.

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

Отправлено: 12:43, 23-06-2012 | #303


Аватара для alert30

Ветеран


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

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


Johny777, да, спасибо, уже нашел.

Отправлено: 12:47, 23-06-2012 | #304


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

Ветеран


Contributor


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

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


Johny777, держи, это писать в основном коде, код деинсталлятора не нужен.
читать дальше »

Код: Выделить весь код
#define MyAppName "test"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppName}
DefaultDirName={pf}\{#MyAppName}
UsePreviousAppDir=false
UsePreviousGroup=false
AlwaysShowComponentsList=true
FlatComponentsList=false
UsePreviousSetupType=false
UsePreviousTasks=false
UsePreviousUserInfo=false
DisableStartupPrompt=true
UninstallFilesDir={app}\uninstall
UninstallIconFile=icon.ico
AppMutex=testmutex
BitmapResource=unins:Cremator_poster.bmp

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

[CustomMessages]
ru.Cremator=äâîðíèê Àëüÿíñà
en.Cremator=A Combine janitor of sorts

ru.remove=åìó ïîäìåñòè?
en.remove=should he sweep?

ru.Save=èëè ñíà÷àëà
en.Save=would you like to

ru.Save_Btn=ñîõðàíèøü ?
en.Save_Btn=save ?

en.rem=sweep
ru.rem=ñìåñòè

[Files]
Source: steam.cjstyles; DestDir: {#SetupSetting("UninstallFilesDir")}
Source: isskin.dll; DestDir: {#SetupSetting("UninstallFilesDir")}

[code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall setuponly';
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
function WINAPI_CreateMutex(lpMutexAttributes: Longint; bInitialOwner: BOOL; lpName: String): THandle; external 'CreateMutexA@kernel32.dll stdcall';
function ReleaseMutex(hMutex: THandle): BOOL; external 'ReleaseMutex@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall';

var
    UninstallForm: TSetupForm;
    Save_Label: TLabel;
    hl2_Checkbox, ep1_Checkbox, ep2_Checkbox, portal_Checkbox: TCheckBox;
    ExitButton, UninstallButton: TButton;
    ResultCode: Integer;
    hMutex: THandle;

procedure InitializeWizard();
begin
    //create installer mutex
    hMutex := WINAPI_CreateMutex(0, False, ExpandConstant('{#SetupSetting("AppMutex")}'));
    
    //skin
    ExtractTemporaryFile('steam.cjstyles');
    LoadSkin(ExpandConstant('{tmp}\steam.cjstyles'), '');
end;

procedure Run_SAVE(Sender: TObject);
begin
    if ActiveLanguage = 'en' then Exec(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\SAVE.exe'), '/LANG=English', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    if ActiveLanguage = 'ru' then Exec(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\SAVE.exe'), '/LANG=Russian', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;

function CreateUninstallForm: Integer;
begin
    UninstallForm := CreateCustomForm;
    with UninstallForm do
    begin
        BorderStyle := bsSingle;
        BorderIcons := [biSystemMenu,biMinimize];
        Position := poScreenCenter;
        Caption := 'Uninstall';
        ClientWidth := ScaleX(634);
        ClientHeight := ScaleY(586);

        //unins background bitmap image
        with TBitmapImage.Create(nil) do
        begin
            Parent := UninstallForm;
            Bitmap.LoadFromResourceName(HInstance, '_IS_UNINS');
            SetBounds(ScaleX(0), ScaleY(0), ScaleX(640), ScaleY(586));
            Hint := ExpandConstant('{cm:Cremator}');
            ShowHint := True;
            ParentShowHint := False;
        end;

        //should he sweep label
        Save_Label := TLabel.Create(nil);
        with Save_Label do
        begin
            Parent := UninstallForm;
            Left := ScaleX(400);
            Top := ScaleY(27);
            AutoSize := True;
            Caption := ExpandConstant('{cm:remove}');
            Font.Color := clWindowText;
            Font.Height := -16;
            Font.Name := 'Tahoma';
            ParentFont := False;
            Transparent := False;
            Font.Color := $48c1ca;
        end;

        //would you like to label
        with TLabel.Create(nil) do
        begin
            Parent := UninstallForm;
            SetBounds(ScaleX(460), ScaleY(50), ScaleX(270), ScaleY(16));
            AutoSize := False;
            Caption := ExpandConstant('{cm:Save}');
            Transparent := True;
            WordWrap := True;
            Font.Color := $48c1ca;
            Font.Size := 8;
        end;

        //uninstall button
        UninstallButton := TButton.Create(nil);
        with UninstallButton do
        begin
            Parent := UninstallForm;
            SetBounds(ScaleX(500), ScaleY(527), ScaleX(69), ScaleY(23));
            Cursor := crHand;
            Caption := SetupMessage(msgButtonYes);
            ModalResult := mrOk;
        end;

        //exit button
        ExitButton := TButton.Create(nil);
        with ExitButton do
        begin
            Parent := UninstallForm;
            SetBounds(UninstallButton.Left - UninstallButton.Width - ScaleX(16), UninstallButton.Top, UninstallButton.Width, UninstallButton.Height);
            Caption := SetupMessage(msgButtonNo);
            Cursor := crHand;
            ModalResult := mrCancel;
        end;

        //save button
        with TNewSpeedButton.Create(nil) do
        begin
            Parent := UninstallForm;
            if ActiveLanguage = 'ru' then SetBounds(Save_Label.Left + Save_Label.Width + ScaleX(20), Save_Label.Top + ScaleY(19), ScaleX(73), ScaleY(20));
            if ActiveLanguage = 'en' then SetBounds(Save_Label.Left + Save_Label.Width + ScaleX(20), Save_Label.Top + ScaleY(19), ScaleX(40), ScaleY(20));
            Caption := ExpandConstant('{cm:Save_Btn}');
            Enabled := FileExists(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\SAVE.exe'));
            ThemeEnabled := False;
            Style := nsbButton;
            Font.Size := 8;
            Font.Color := $48c1ca;
            OnClick := @Run_SAVE;
        end;

        //hl2 checkbox
        hl2_Checkbox := TCheckBox.Create(nil);
        with hl2_Checkbox do
        begin
            Parent := UninstallForm;
            Caption := ExpandConstant('{cm:rem}');
            SetBounds(UninstallButton.Left, ScaleY(127), ScaleX(80), ScaleY(15));
            Checked := False;
            Enabled := FileExists(ExpandConstant('{app}\common\half-life 2\hl2.exe'));
        end;

        //ep1 checkbox
        ep1_Checkbox := TCheckBox.Create(nil);
        with ep1_Checkbox do
        begin
            Parent := UninstallForm;
            Caption := ExpandConstant('{cm:rem}');
            SetBounds(UninstallButton.Left, hl2_Checkbox.Top + ScaleY(116), ScaleX(70), ScaleY(15));
            Checked := False;
            Enabled := FileExists(ExpandConstant('{app}\common\half-life 2 episode one\hl2.exe'));
        end;

        //ep2 checkbox
        ep2_Checkbox := TCheckBox.Create(nil);
        with ep2_Checkbox do
        begin
            Parent := UninstallForm;
            Caption := ExpandConstant('{cm:rem}');
            SetBounds(UninstallButton.Left, ep1_Checkbox.Top + ScaleY(116), ScaleX(70), ScaleY(15));
            Checked := False;
            Enabled := FileExists(ExpandConstant('{app}\common\half-life 2 episode two\hl2.exe'));
        end;

        //portal checkbox
        portal_Checkbox := TCheckBox.Create(nil);
        with portal_Checkbox do
        begin
            Parent := UninstallForm;
            Caption := ExpandConstant('{cm:rem}');
            SetBounds(UninstallButton.Left, ep2_Checkbox.Top + ScaleY(116), ScaleX(70), ScaleY(15));
            Checked := False;
            Enabled := FileExists(ExpandConstant('{app}\common\portal\hl2.exe'));
        end;
        Result := ShowModal;
    end;
end;

function Unstall(): Boolean;
begin
    Result := False;

    //del hl2
    if hl2_Checkbox.Checked then
    begin
        DelTree(ExpandConstant('{app}\common\half-life 2'), True, True, True);
        DeleteFile(ExpandConstant('{app}\half-life 2 buka russian.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 2007 base content.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 content.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 game dialog.gcf'));
        DeleteFile(ExpandConstant('{userdesktop}\Half-Life 2.lnk'));

        SetIniString('Installed', 'hl2', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'AuroraB', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'hl2_ru', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'hl2_ru_buka', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'hl2_en', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'hl2_ru_en', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
    end;

    //del ep1
    if ep1_Checkbox.Checked then
    begin
        DelTree(ExpandConstant('{app}\common\half-life 2 episode one'), True, True, True);
        DeleteFile(ExpandConstant('{app}\episode one 2007 content.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 episode one.gcf'));
        DeleteFile(ExpandConstant('{userdesktop}\Half-Life 2 Episode One.lnk'));

        SetIniString('Installed', 'ep1', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'ep1_ru', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'ep1_en', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'ep1_ru_en', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
    end;

    //del ep2
    if ep2_Checkbox.Checked then
    begin
        DelTree(ExpandConstant('{app}\common\half-life 2 episode two'), True, True, True);
        DeleteFile(ExpandConstant('{app}\episode two content.gcf'));
        DeleteFile(ExpandConstant('{app}\episode two maps.gcf'));
        DeleteFile(ExpandConstant('{app}\episode two materials.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 episode two english.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 episode two russian.gcf'));
        DeleteFile(ExpandConstant('{userdesktop}\Half-Life 2 Episode Two.lnk'));

        SetIniString('Installed', 'ep2', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'ep2_ru', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'ep2_en', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'ep2_ru_en', '',  ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
    end;

    //del portal
    if portal_Checkbox.Checked then
    begin
        DelTree(ExpandConstant('{app}\common\portal'), True, True, True);
        DeleteFile(ExpandConstant('{app}\portal content.gcf'));
        DeleteFile(ExpandConstant('{app}\portal english.gcf'));
        DeleteFile(ExpandConstant('{app}\portal russian.gcf'));
        DeleteFile(ExpandConstant('{userdesktop}\Portal.lnk'));

        SetIniString('Installed', 'portal', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'portal_ru', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'portal_en', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
        SetIniString('Installed', 'portal_ru_en', '', ExpandConstant('{#SetupSetting("UninstallFilesDir")}\parameters.ini'));
    end;

    //del episodes gcf
    if not FileExists(ExpandConstant('{app}\common\half-life 2 episode one\hl2.exe')) and
    not FileExists(ExpandConstant('{app}\common\half-life 2 episode two\hl2.exe')) then
    begin
        DeleteFile(ExpandConstant('{app}\episode 1 shared.gcf'));
        DeleteFile(ExpandConstant('{app}\episodic 2007 shared.gcf'));
        DeleteFile(ExpandConstant('{app}\half-life 2 episode one russian.gcf'));
    end;

    //del russian hl2 gcf
    if not FileExists(ExpandConstant('{app}\common\half-life 2\hl2.exe')) and
    not FileExists(ExpandConstant('{app}\common\half-life 2 episode one\hl2.exe')) and
    not FileExists(ExpandConstant('{app}\common\half-life 2 episode two\hl2.exe')) then
        DeleteFile(ExpandConstant('{app}\half-life 2_russian.gcf'));

    //full uninstall
    if not FileExists(ExpandConstant('{app}\common\half-life 2\hl2.exe')) and
    not FileExists(ExpandConstant('{app}\common\half-life 2 episode one\hl2.exe')) and
    not FileExists(ExpandConstant('{app}\common\half-life 2 episode two\hl2.exe')) and
    not FileExists(ExpandConstant('{app}\common\portal\hl2.exe')) then
    begin
        MsgBox(FmtMessage(SetupMessage(msgUninstalledAll), ['{#MyAppName}']), mbInformation, MB_OK);
        Result := True;
    end;

    //release deinstall mutex
    ReleaseMutex(hMutex);
    CloseHandle(hMutex);

    UninstallForm.Close;
end;

function InitializeUninstall(): Boolean;
begin
    Result := False;

    //skin
    if FileCopy(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\steam.cjstyles'), ExpandConstant('{tmp}\steam.cjstyles'), True) and
    FileCopy(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), True) then
        LoadSkinU(ExpandConstant('{tmp}\steam.cjstyles'), '');

    if not UninstallSilent then
    begin
        Exec(ExpandConstant('{uninstallexe}'), '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode);
        Exit;
    end;

    //check install mutex
    if CheckForMutexes(ExpandConstant('{#SetupSetting("AppMutex")}')) then
    begin
        MsgBox(FmtMessage(SetupMessage(msgUninstallAppRunningError), ['{#MyAppName}']), mbError, MB_OK);
        Exit;
    end;

    //create deinstall mutex
    hMutex := WINAPI_CreateMutex(0, False, ExpandConstant('{#SetupSetting("AppMutex")}'));

    if CreateUninstallForm = mrOk then Result := Unstall();
    UninstallForm.Free;
end;

procedure DeinitializeUninstall();
begin
    if FileExists(ExpandConstant('{tmp}\steam.cjstyles')) and FileExists(ExpandConstant('{tmp}\isskin.dll')) then UnloadSkinU();
end;

procedure DeinitializeSetup;
begin
    UnloadSkin();
    ReleaseMutex(hMutex);
    CloseHandle(hMutex);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:07, 23-06-2012 | #305


Старожил


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

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


Здравствуйте. Извините что не по теме, но как настроить FreeArc чтоб максимально сжималось? А то у меня ОЗУ 16 гб а используется только 2 гб.

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 07:44, 24-06-2012 | #306


Аватара для alert30

Ветеран


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

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


LinkOFF, никак, только от без сжатия до ультры. Вроде говорят, как очень сжатый архиватор; это NanoZip.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:17, 24-06-2012 | #307


Новый участник


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

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


Как называется окно выбора папки установки?

Отправлено: 13:16, 24-06-2012 | #308


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

Ветеран


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

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


Цитата t16bz:
Как называется окно выбора папки установки? »
я тебе точно не отвечу тк инно нет под рукой, но посмотреть названия можно:
1. В справке поищи описание CurPageChanged, там есть названия страниц
2. в расширенном инно в Inno Form Designer видны все названия окон и элементов с "родителями"

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


Отправлено: 13:34, 24-06-2012 | #309


Аватара для Ivan_009

Ветеран


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

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


Как избавится от моргания картинок при переходе с одной странницы на другую пользуюсь b2p v0.3.9.2 от VoLT

Отправлено: 14:33, 24-06-2012 | #310



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход