Inno Setup (создание инсталяционных пакетов). Часть 3

Статус
В этой теме нельзя размещать новые ответы.

ilzok17

Новичок
ilzok17
В данном скрипте эта опция служит для использования внешних компрессоров, но не cls-фильтров. Т.е в данном скрипте пока не получится сделать то, что ты хочешь. Используй пока ISDone.
Спасибо,но как я понял этот скрипт не поддерживает распаковку srep,но у меня даже не получается распаковать FreeArc + precomp,только FreeArc,хотя в описание автор упомянул про возможность распаковки и precomp,но при условии прописания пути.
 

Shegorat

Lord of Madness
Администратор
Спасибо,но как я понял этот скрипт не поддерживает распаковку srep,но у меня даже не получается распаковать FreeArc + precomp,только FreeArc,хотя в описание автор упомянул про возможность распаковки и precomp,но при условии прописания пути.
Распаковка архивов с precomp возможна, только если precomp использовался как внешний компрессор, а не cls-фильтр, при этом соответственно нужно иметь в наличии arc.ini и использованный компрессор.

P.S. Это старая версия скрипта, здесь можно найти более новую версию. Но она так же не поддерживает cls-фильтры. А для доработки скрипта мне не хватает времени.
 

ilzok17

Новичок
Подскажите пожалуйста,если я на своей 64-разрядной оси буду использовать srep 64,то распаковываться он сможет тоже только на 64 оси или и на 32 тоже?Заранее спасибо.
 

Katarn

Новичок
Прошу помощи. Подскажите пожалуйста как правильно объединить две одинаковые функции "function InitializeSetup(): Boolean;", пытался объединить с помощью Joiner-script, но после компиляции выдаёт вот такую ошибку.
.Дословный перевод ошибки: Попытка была сделана, чтобы иметь доступ к WizardForm прежде, чем она будет создана. Второй день голову ломаю и никак не могу понять как решить эту траблу. Ссылка на архив со всеми вытекающими.
 
Последнее редактирование:

ilzok17

Новичок
Да ,извините за назойливость но забыл самое главное узнать - а какое реальное преимущество имеет srep 64 перед просто srep ?
 

Katarn

Новичок
Всем привет! Подскажите пожалуйста как сделать чтобы при деинсталяции WizardSmallImage, тоже был растянут как на скрине: Пробовал использовать вот этот код:
procedure InitializeUninstallProgressForm();
begin
with UninstallProgressForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), MainPanel.Width, MainPanel.Height);
end;
end;
но это не то.
 
Последнее редактирование:

LexBell

Борода
Супер модератор
Katarn, а так?

[SOURCE="iss"]procedure InitializeUninstallProgressForm();
begin
with UninstallProgressForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
WizardSmallBitmapImage.Stretch := True;
WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), MainPanel.Width, MainPanel.Height);
end;
end;[/SOURCE]
 

Katarn

Новичок
Funny Bits, Если что этот путь у меня в секции "Setup" прописан? Результат тот же. Вот ссылка на архив со всеми вытикающими: http://rghost.ru/41366620
 

Snoopak96

Старожил
Katarn,
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
WizardSmallImageFile=InstallFiles\WizardSmallImage.bmp

[Files]
Source: InstallFiles\WizardSmallImage.bmp; DestDir: {app}; Attribs: hidden system;

[_Code_]
procedure InitializeWizard();
begin
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.WizardSmallBitmapImage.Left := ScaleX(0);
  WizardForm.WizardSmallBitmapImage.Top := ScaleY(0);
  WizardForm.WizardSmallBitmapImage.Width := WizardForm.MainPanel.Width;
  WizardForm.WizardSmallBitmapImage.Height := WizardForm.MainPanel.Height;
end;

procedure InitializeUninstallProgressForm();
begin
  with UninstallProgressForm do
  begin
    PageNameLabel.Hide;
    PageDescriptionLabel.Hide;           
    WizardSmallBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{app}\WizardSmallImage.bmp'));
    WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), MainPanel.Width, MainPanel.Height);
  end;
end;
 

LexBell

Борода
Супер модератор
Katarn, если ты не обратил внимания, то в качестве WizardSmallBitmapImage деинсталлятора, используется иконка деинсталлятора. И в секции "Setup" никак не может быть прописан. поэтому и грузят его обычно из своего файла, что нет других вариантов.
 

Mailchik

Старожил
Проверенный
Katarn, из секции [Setup] (Требуется расширенная версия от Restools):
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
BitmapResource=UnBmp:InstallFiles\WizardSmallImage.bmp

[B][[/B]Code]
procedure InitializeWizard();
begin
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.WizardSmallBitmapImage.Left := ScaleX(0);
  WizardForm.WizardSmallBitmapImage.Top := ScaleY(0);
  WizardForm.WizardSmallBitmapImage.Width := WizardForm.MainPanel.Width;
  WizardForm.WizardSmallBitmapImage.Bitmap.LoadFromResourceName(HInstance, '_IS_UnBmp');
  WizardForm.WizardSmallBitmapImage.Height := WizardForm.MainPanel.Height;
end;

procedure InitializeUninstallProgressForm();
begin
  with UninstallProgressForm do
  begin
    PageNameLabel.Hide;
    PageDescriptionLabel.Hide;
    WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), MainPanel.Width, MainPanel.Height);
    WizardSmallBitmapImage.Bitmap.LoadFromResourceName(HInstance, '_IS_UnBmp');
  end;
end;
 
Последнее редактирование:

Katarn

Новичок
Katarn, если ты не обратил внимания, то в качестве WizardSmallBitmapImage деинсталлятора, используется иконка деинсталлятора. И в секции "Setup" никак не может быть прописан. поэтому и грузят его обычно из своего файла, что нет других вариантов.
Как раз таки и обратил внимание, на то что используется иконка деисталлятора, поэтому и хотел узнать как сделать так чтобы вместо иконки при деинсталяции был WizardSmallBitmapImage, узнал за что всем вам огромное человеческое спасибо, да не сочтите за :offtopic:

Добавлено через 4 минуты
Katarn, из секции [Setup] (Требуется расширенная версия от Restools):
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
BitmapResource=UnBmp:InstallFiles\WizardSmallImage.bmp

[B][[/B]Code]
procedure InitializeWizard();
begin
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.WizardSmallBitmapImage.Left := ScaleX(0);
  WizardForm.WizardSmallBitmapImage.Top := ScaleY(0);
  WizardForm.WizardSmallBitmapImage.Width := WizardForm.MainPanel.Width;
  WizardForm.WizardSmallBitmapImage.Bitmap.LoadFromResourceName(HInstance, '_IS_UnBmp');
  WizardForm.WizardSmallBitmapImage.Height := WizardForm.MainPanel.Height;
end;

procedure InitializeUninstallProgressForm();
begin
  with UninstallProgressForm do
  begin
    PageNameLabel.Hide;
    PageDescriptionLabel.Hide;
    WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), MainPanel.Width, MainPanel.Height);
    WizardSmallBitmapImage.Bitmap.LoadFromResourceName(HInstance, '_IS_UnBmp');
  end;
end;
А это не она случаем: :)
[MOD="Snoopak96"]нет, тут без файлов на диске, в прочем делай как угодно, пример банальный.[/MOD]
 
Последнее редактирование модератором:

Katarn

Новичок
попробуйте скомпилировать. если удачно, то она)
скомпилировал удачно, как говорится всё тип топ.:)

Добавлено через 11 минут
Как раз таки и обратил внимание, на то что используется иконка деисталлятора, поэтому и хотел узнать как сделать так чтобы вместо иконки при деинсталяции был WizardSmallBitmapImage, узнал за что всем вам огромное человеческое спасибо, да не сочтите за :offtopic:

Добавлено через 4 минуты

А это не она случаем: :)
нет, тут без файлов на диске, в прочем делай как угодно, пример банальный.
Извините конечно я может быть многого и не понимаю в "Inno", но в одном я уверен точно: Inno Setup Compiler 5.5.1.ee1 (a) (build 120808) - это расширенная анси версия от ResTools. Inno Setup Compiler 5.5.1.ee1 (u) (build 120808) - это расширенная юникод версия от ResTools. Поправьте если не так.
 
Последнее редактирование:

nikitis47

Мимокрокодил
[MOD="Gnom"]Кросспостинг запрещен. читаем правила![/MOD]
 
Последнее редактирование модератором:

Devils Night

Ветеран
Инсталлятор с параметрами не по умолчанию:

Код:
[Setup]
AppName=unattended
AppVersion=1.0
DefaultDirName={pf}\unattended
DefaultGroupName=unattended
AllowNoIcons=yes
OutputDir=.
OutputBaseFilename=setupunattended
Compression=lzma
SolidCompression=yes

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

[Components]
Name: a; Description: A; Types: full
Name: b; Description: B; Types: full; Flags: checkablealone
Name: b\a; Description: B\A; Flags: dontinheritcheck; Types: full
Name: b\b; Description: B\B; Flags: dontinheritcheck
Name: b\c; Description: B\C; Flags: dontinheritcheck
Name: b\d; Description: B\D; Flags: dontinheritcheck

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: a; Description: A
Name: b; Description: B
Name: b\a; Description: B\A
Name: b\b; Description: B\B; Flags: unchecked
Name: b\c; Description: B\C; Flags: unchecked
Name: b\d; Description: B\D; Flags: unchecked

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion

[Icons]
Name: {group}\unattended; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,unattended}; Filename: {uninstallexe}
Name: {commondesktop}\unattended; Filename: {app}\MyProg.exe; Tasks: desktopicon

Далее создаём файл unattended.inf (можно задать любое имя на латинице и расширение).
В файле unattended.inf добавляем параметры примерно такого содержания:
Код:
[Setup]
Dir=C:\Program Files\MyProgs
Group=MyProgs
NoIcons=0
SetupType=custom
Components=b, b\b, b\d
Tasks=b, b\b, b\d, desktopicon
  • Dir=C:\Program Files\MyProgs - Папка установки (можно прописать свой путь)
  • Group=MyProgs - Папка группы (можно прописать свой путь)
  • NoIcons=0 - Не создавать папку в меню Пуск; 0 - не создавать; 1 - Создать
  • Components=b, b\b, b\d - Компоненты (в скрипте смотрим раздел [Components], прописывается через запятую то что находится в Name:; Например: буква, буква\буква, буква\цифра либо название mycomp т.е a, a\a, a\1, mycomp и.т.д)
  • Tasks=b, b\b, b\d, desktopicon - Задачи (в скрипте смотрим раздел [Tasks], прописывается через запятую то что находится в Name:; Например: буква, буква\буква, буква\цифра либо название desktopicon т.е a, a\a, a\1, desktopicon и.т.д)
  • ; SetupType=custom - Тип установки если имеется, раздел [Types] (делается аналогично как Components и Tasks, по умолчанию: Full, Compact и Custom, единственная разница, здесь нужно выбирать что-то одно а не через запятую, т.е либо a либо b, либо Full либо Compact либо Custom).

Чтобы всё это запустить, нужно:
  1. Создать батник с любым названием, например: unattended.bat (желательно на латинице).
  2. Прописать такие вот параметры:
    Код:
    "setupunattended.exe" /LoadInf=".\unattended.inf"
    • setupunattended.exe - созданный инсталлятор
    • LoadInf - Параметр загрузки конфигурационного файла
    • .\ - Путь до файла
    • unattended.inf - конфигурационный файл
    • /verysilent - тихая установка
    • /norestart - без перезагрузки

P.S Думаю смысл понятен!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху