1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

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

Тема в разделе "Inno Setup", создана пользователем Xabib2302, 3 мар 2019.

  1. Ветеран

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

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

    Регистрация:
    5 мар 2016
    Сообщения:
    406
    Симпатии:
    425
    Пол:
    Мужской
    Xabib2302, может примерно так, но не пробовал протестировать:

    Код (Inno):
    [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;
     
  3. Ветеран

    Регистрация:
    28 май 2013
    Сообщения:
    53
    Симпатии:
    9
    уже сделал. посредством записи команд в ini файл через секцию [Ini] и чтение из ini файла через код
     
  4. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.300
    Симпатии:
    832
    Xabib2302, добавь, тогда свое решение.
     
  5. Ветеран

    Регистрация:
    28 май 2013
    Сообщения:
    53
    Симпатии:
    9
    sergey3695,
    Код (Inno):

    ; Скрипт создан через Мастер 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;
     
     
    Последнее редактирование: 5 мар 2019

Поделиться этой страницей