Добавление и удаление команд в зависимости от компонентов и задач

Xabib2302

Новичок
Доброе время суток. Нужно, чтобы при выборе или отмене компонента и задачи добавлялась или удалялась часть команды из секции run?
Например: При выборе задачи "Создать ярлык на РС" добавлялась команда SHORTCUT_DESKTOP=1.

Код:
[Run]
Filename: msiexec.exe; Parameters: "/I Setup.msi /qf ALL_USERS=1 SHORTCUT_DESKTOP=1 INSTALLDIR=""{app}"""; Check: not WizardSilent; Flags: waituntilterminated hidewizard;
 
Последнее редактирование:

Nemko

Дилетант
Модератор
Xabib2302, может примерно так, но не пробовал протестировать:

Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Run]
Filename: msiexec.exe; Parameters: {code:GetParam}; Check: not WizardSilent; Flags: waituntilterminated hidewizard;

[Code]
var
  MyCheckBox: TNewCheckBox;

function GetParam(s: String): String;
begin
  if MyCheckBox.Checked then Result:='/I Setup.msi /qf ALL_USERS=1 SHORTCUT_DESKTOP=1 INSTALLDIR=""{app}'
  else Result:='/I Setup.msi /qf ALL_USERS=1 INSTALLDIR=""{app}';
end;

procedure InitializeWizard;
begin

MyCheckBox:=TNewCheckBox.Create(nil);
with MyCheckBox do begin
  Left:=ScaleX(10);
  Top:=ScaleY(325);
  Caption:=' msiexec.exe'
  Parent:=WizardForm;
 end;
end;
 

Xabib2302

Новичок
уже сделал. посредством записи команд в ini файл через секцию [Ini] и чтение из ini файла через код
 

Xabib2302

Новичок
sergey3695,
Код:
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!

#define MyAppName "Моя программа"
#define MyAppVersion "1.5"
#define MyAppPublisher "Моя компания, Inc."
#define MyAppURL "http://www.сайт.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppId={{E2E39178-ECF3-423F-A832-45E6AF629577}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Run]
Filename: msiexec.exe; Parameters: "/I ""{tmp}\Setup.msi"" /qf ALL_USERS=1 EULA_ACCEPTED=1 LAUNCH_FINEREADER=0 INSTALLDIR=""{app}"" {code:GetParam_1} {code:GetParam_2} {code:GetParam_3} {code:GetParam_4} {code:GetParam_5} {code:GetParam_6}"; Check: not WizardSilent; Flags: waituntilterminated hidewizard;

[Ini]
filename: {src}\script.ini; section: "Command"; key: "LANG"; string: "TRANSFORMS=1049.mst"; Languages: russian;
filename: {src}\script.ini; section: "Command"; key: "LANG"; string: "TRANSFORMS=1033.mst"; Languages: english;
filename: {src}\script.ini; section: "Command"; key: "LANG"; string: "TRANSFORMS=1058.mst"; Languages: ukrainian;
filename: {src}\script.ini; section: "Command"; key: "SHCTDESKTOP"; string: "SHCTDESKTOP=1"; Tasks: desktopicon;
filename: {src}\script.ini; section: "Command"; key: "EXPLORER"; string: "EXPLORER=1"; Components: ABBYYFN\EXPLORER;
filename: {src}\script.ini; section: "Command"; key: "HF"; string: "HF=1"; Components: ABBYYFN\HF;
filename: {src}\script.ini; section: "Command"; key: "SSR"; string: "SSR=1"; Components: ABBYYFN\SSR;
filename: {src}\script.ini; section: "Command"; key: "COMPARATOR"; string: "COMPARATOR=1"; Components: ABBYYFN\COMPARATOR;
filename: {src}\script.ini; section: "Command"; key: "SHCTDESKTOP"; string: "SHCTDESKTOP=0"; Tasks: not desktopicon;
filename: {src}\script.ini; section: "Command"; key: "EXPLORER"; string: "EXPLORER=0"; Components: not ABBYYFN\EXPLORER;
filename: {src}\script.ini; section: "Command"; key: "HF"; string: "HF=0"; Components: not ABBYYFN\HF;
filename: {src}\script.ini; section: "Command"; key: "SSR"; string: "SSR=0"; Components: not ABBYYFN\SSR;
filename: {src}\script.ini; section: "Command"; key: "COMPARATOR"; string: "COMPARATOR=0"; Components: not ABBYYFN\COMPARATOR;

[Components]
Name: ABBYYFN; Description: "ABBYY FineReader 14"; Flags: checkablealone;
Name: ABBYYFN\EXPLORER; Description: "Интеграция с Проводником Windows"; Flags: checkablealone;
Name: ABBYYFN\HF; Description: "ABBYY Hot Folder"; Flags: checkablealone;
Name: ABBYYFN\SSR; Description: "ABBYY Screenshot Reader"; Flags: checkablealone;
Name: ABBYYFN\COMPARATOR; Description: "ABBYY Сравнение документов"; Flags: checkablealone;

[code]
function GetParam_1(s: String): String;
begin
  Result:=GetIniString('Command', 'LANG', '', ExpandConstant('{src}\script.ini'));
end;
function GetParam_2(s: String): String;
begin
  Result:=GetIniString('Command', 'SHCTDESKTOP', '', ExpandConstant('{src}\script.ini'));
end;
function GetParam_3(s: String): String;
begin
  Result:=GetIniString('Command', 'EXPLORER', '', ExpandConstant('{src}\script.ini'));
end;
function GetParam_4(s: String): String;
begin
  Result:=GetIniString('Command', 'HF', '', ExpandConstant('{src}\script.ini'));
end;
function GetParam_5(s: String): String;
begin
  Result:=GetIniString('Command', 'SSR', '', ExpandConstant('{src}\script.ini'));
end;
function GetParam_6(s: String): String;
begin
  Result:=GetIniString('Command', 'COMPARATOR', '', ExpandConstant('{src}\script.ini'));
end;
 
Последнее редактирование:
Сверху