Jump to content
Korean Random
EvilAlex

Создание инсталляторов для модпаков на базе Inno Setup

Recommended Posts

Darksoul, большинство приходит сюда клянчить, а не учиться.

Share this post


Link to post

Short link
Share on other sites

@Kotyarko_O, Уважаемый есть смысл   просить у Вас поделится простейшим с распаковкай  для собственных нужд ?

В этой теме @AtotIK (вроде) где-то давал пример с распаковкой архива.. Где-то в середине

 

 

если тебе жалко обьяснить человеку одну функцию, то ты или сам не знаешь, как это осуществить, или слишком жадный, если первый вариант, я ничего не скажу, это у всех бывает, ну а если второй, то что ты тогда в этой теме делаешь?
Не знаю? (да, не знаю. И в моём модПаке это осуществлено тоже не мной, само как-то). [сарказм].

Слишком жадный? - Ну да, я ведь вообще тут никому не помогаю\не помогал последние страниц 60. [сарказм].

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Ребят не подскажите, можно ли сделать ярлык на приложение, и чтоб ярлык отправлялся на рабочий стол ,приложение находиться внутри пака,
То есть оно устонавливаеться, моим паком?
Если можно то как?

Share this post


Link to post

Short link
Share on other sites

Ребят не подскажите, можно ли сделать ярлык на приложение, и чтоб ярлык отправлялся на рабочий стол ,приложение находиться внутри пака,

То есть оно устонавливаеться, моим паком?

Если можно то как?

[Icons]
Name: "{commondesktop}\Имя создаваемого ярлыка"; Filename: "{app}\приложение(файл), на который ссылается ярлык."; Comment: "Описание ярлыка (всплывающий хинт при наведении).";
Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

post-26466-0-58086900-1408480280_thumb.jpg
Выбирает оба компонента вместо одного (эксклюзивный флаг стоит на обоих)! В чем проблема?

#define MyAppName "AlaCraD's MoD-Pack"
#define MyAppVersion "0.9.2"
#define MyAppPublisher "AlaCraD"
#include "SHFileOperation.iss";
#define Patch "0.9.2"
[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppId={{91EE0711-9FC2-4E05-99B8-690BF039DB53}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
LicenseFile=D:\Папка AlaCraD\1\12.txt
InfoBeforeFile=D:\Папка AlaCraD\1\2.rtf
InfoAfterFile=D:\Папка AlaCraD\1\Документ Microsoft Word.rtf
DefaultDirName=World of Tanks
DefaultGroupName=12
AllowNoIcons=yes
OutputDir=C:\Users\Михаил\Desktop
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
AlwaysShowDirOnReadyPage=yes
DirExistsWarning=no
SetupIconFile=png.ico
CreateUninstallRegKey=no
WizardImageFile=123.bmp
WizardSmallImageFile=D:\Папка AlaCraD\1\1.bmp
AppendDefaultDirName=no

[types]
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[code]


procedure RedesignWizardForm;
var
i: integer;
  BtnPanel: TPanel;
  BtnImage: TBitmapImage;
begin
  with WizardForm.WizardSmallBitmapImage do
  begin
    Left := ScaleX(0);
    Width := ScaleX(500);
    Height := ScaleY(60);
  end;
end;


var
  BackupPage: TWizardPage;
  DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton;

const
  BackupDescText =
    'Во избежание проблем совместимости и конфликтов между модификациями рекомендуется удалить уже установленные на данный момент в игровом клиенте.' #13#13 'Выберите необходимый пункт из представленных. При этом будет очищено содержимое папки "res_mods\{#Patch}", удалена папка "res_mods\xvm" или созданы резервные копии Ваших файлов.';
  DeleteDescText =
    'Установщик удалит все файлы в папках.';
  MoveDescText =
    'Установщик сделает резервную копию всех файлов в папках.';
  NoneDescText =
    'Установщик оставит всё как есть.';

function BackupCheck_1(): Boolean;
var
  BackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel;
begin
  BackupPage:=CreateCustomPage(wpWelcome, '', '');
  BackupDescLabel:=TLabel.Create(WizardForm);
  BackupDescLabel.Parent:=BackupPage.Surface;
  BackupDescLabel.Left:=0;
  BackupDescLabel.Top:=0;
  BackupDescLabel.Width:=BackupPage.SurfaceWidth;
  BackupDescLabel.Height:=90;
  BackupDescLabel.AutoSize:=False;
  BackupDescLabel.Wordwrap:=True;
  BackupDescLabel.Caption:=BackupDescText;

  DeleteRadioButton:=TNewRadioButton.Create(WizardForm);
  DeleteRadioButton.Parent:=BackupPage.Surface;
  DeleteRadioButton.Checked:=False;
  DeleteRadioButton.Top:=95;
  DeleteRadioButton.Width:=BackupPage.SurfaceWidth;
  DeleteRadioButton.Font.Style:=[fsBold];
  DeleteRadioButton.Font.Size:=9;
  DeleteRadioButton.Caption:='Удалить файлы'
  DeleteDescLabel:=TLabel.Create(WizardForm);
  DeleteDescLabel.Parent:=BackupPage.Surface;
  DeleteDescLabel.Left:=18;
  DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;
  DeleteDescLabel.Width:=BackupPage.SurfaceWidth;
  DeleteDescLabel.Height:=40;
  DeleteDescLabel.AutoSize:=False;
  DeleteDescLabel.Wordwrap:=True;
  DeleteDescLabel.Caption:=DeleteDescText;

  MoveRadioButton:=TNewRadioButton.Create(WizardForm);
  MoveRadioButton.Parent:=BackupPage.Surface;
  MoveRadioButton.Checked:=True;
  MoveRadioButton.Top:=140;
  MoveRadioButton.Width:=BackupPage.SurfaceWidth;
  MoveRadioButton.Font.Style:=[fsBold];
  MoveRadioButton.Font.Size:=9;
  MoveRadioButton.Caption:='Сделать резервную копию файлов'
  MoveDescLabel:=TLabel.Create(WizardForm);
  MoveDescLabel.Parent:=BackupPage.Surface;
  MoveDescLabel.Left:=18;
  MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height + 4;
  MoveDescLabel.Width:=BackupPage.SurfaceWidth;
  MoveDescLabel.Height:=40;
  MoveDescLabel.AutoSize:=False;
  MoveDescLabel.Wordwrap:=True;
  MoveDescLabel.Caption:=MoveDescText;

  NoneRadioButton:=TNewRadioButton.Create(WizardForm);
  NoneRadioButton.Parent:=BackupPage.Surface;
  NoneRadioButton.Checked:=False;
  NoneRadioButton.Top:=185;
  NoneRadioButton.Width:=BackupPage.SurfaceWidth;
  NoneRadioButton.Font.Style:=[fsBold];
  NoneRadioButton.Font.Size:=9;
  NoneRadioButton.Caption:='Ничего не трогать'
  NoneDescLabel:=TLabel.Create(WizardForm);
  NoneDescLabel.Parent:=BackupPage.Surface;
  NoneDescLabel.Left:=18;
  NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;
  NoneDescLabel.Width:=BackupPage.SurfaceWidth;
  NoneDescLabel.Height:=40;
  NoneDescLabel.AutoSize:=False;
  NoneDescLabel.Wordwrap:=True;
  NoneDescLabel.Caption:=NoneDescText;
end;

function BackupCheck_2(): Boolean;
begin
  If DeleteRadioButton.Checked then
begin
  DelTree(ExpandConstant('{app}\res_mods\{#Patch}'), True, True, True);
  DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);
  CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;

function BackupCheck_3(): Boolean;
begin
  If MoveRadioButton.Checked then
begin
  MoveDir(ExpandConstant('{app}\res_mods\{#Patch}\'),ExpandConstant('{app}\res_mods\backup\{#Patch}'));
  MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\res_mods\backup\xvm'));
  CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
  DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  If CurStep=ssInstall then
begin
  BackupCheck_2();
  BackupCheck_3();
end;
end;

procedure InitializeWizard();
begin
  BackupCheck_1();
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  RedesignWizardForm;
end;


function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
if not FileExists(ExpandConstant('{app}\WorldOfTanks.exe')) then
begin
MsgBox('Не верно указана папка World of Tanks!', mbError, MB_OK);
Result := False;
end;
end;
end;

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


[Messages]
ButtonCancel=В Ангар



[Components]
Name: "m"; Description: "AlaCraD's MoD-Pack";
Name: "m\p"; Description: "Прицелы:"; Flags: checkablealone
  Name: "m\p\b"; Description: "Прицел Jove'a + Арт прицел"; Flags: exclusive
  Name: "m\p\a"; Description: "прицел CircleCross + Арт прицел"; Flags: exclusive
  Name: "m\p\c"; Description: "Прицел Vspishk'и + Арт прицел"; Flags: exclusive
  Name: "m\p\d"; Description: "Прицел Murasor'a + Арт прицел"; Flags: exclusive
Name: "m\q"; Description: "УГН:"; Flags: checkablealone
  Name: "m\q\a"; Description: "Цветовая слепота"; Flags: exclusive
  Name: "m\q\b"; Description: "Тройные круглые скобки"; Flags: exclusive
  Name: "m\q\c"; Description: "Уголками"; Flags: exclusive
  Name: "m\q\d"; Description: "Квадратные скобки"; Flags: exclusive
Name: "m\w"; Description: "Камера:"; Flags: checkablealone
  Name: "m\w\a"; Description: "Командирская камера";
  Name: "m\w\b"; Description: "Отключение дрожжания динамической камеры";
  Name: "m\w\c"; Description: "10-х позиционный снайперский прицел";
  Name: "m\w\d"; Description: "NoScroll";
  Name: "m\w\e"; Description: "Отключение черноты в снайперском приыеле";
  Name: "m\w\f"; Description: "Свободная камера (Caps Lock + F3)";
Name: "m\a"; Description: "Дамаг панель:"; Flags: checkablealone
    Name: "m\a\f"; Description: "Дамаг панель от GambitER"; Flags: exclusive
    Name: "m\a\c"; Description: "Дамаг панель от Zayaz"; Flags: exclusive
    Name: "m\a\d"; Description: "Минималистическая дамаг панель"; Flags: exclusive
    Name: "m\a\e"; Description: "Дамаг панель от Shtys"; Flags: exclusive
Name: "m\b"; Description: "Изменение Лампы 6-е чувство:"; Flags: checkablealone
   Name: "m\b\b"; Description: "Эмблема AlaCraD"; Flags: exclusive
   Name: "m\b\c"; Description: "Красный значок"; Flags: exclusive
Name: "m\c"; Description: "Информационная панель:"; Flags: checkablealone
   Name: "m\c\b"; Description: "Информативная (Полная)"; Flags: exclusive
   Name: "m\c\a"; Description: "Минималистичная (КД и обзор)"; Flags: exclusive
   Name: "m\c\c"; Description: "Новая версия информативной панели"; Flags: exclusive
   Name: "m\c\d"; Description: "Цветная версия панели"; Flags: exclusive
   Name: "m\c\e"; Description: "Подробная информативная панель с иконками"; Flags: exclusive
Name: "m\d"; Description: "Индикатор направления атаки"; Flags: checkablealone
Name: "m\n"; Description: "Направление стволов противников на мини-карте"; Flags: checkablealone
Name: "m\e"; Description: "SafeShot(отключение стрельбы по союзникам и трупам) "; Flags: checkablealone
Name: "m\r"; Description: "Модели танков:"; Flags: checkablealone
  Name: "m\r\a"; Description: "Белые трупы танков";
  Name: "m\r\b"; Description: "Отключение камуфляжей и надписей";
  Name: "m\r\c"; Description: "Цветные рикошеты и непробития";
  Name: "m\r\d"; Description: "Постоянная обводка союзной техники(Настраивается в клиенте игры)";
  Name: "m\r\e"; Description: "Яркие ЖД платформы";
Name: "m\t"; Description: "Звоночек крита модуля противника + 10с. таймер 6-го чувства";
Name: "m\y"; Description: "Модификации в чате:";
  Name: "m\y\a"; Description: "Сообщение - Я засвечен!";
  Name: "m\y\b"; Description: "Результат прошлого боя в чат + Отображение ревпауна во время загрузки боя + Сессионная статистика";
Name: "m\i"; Description: "Модификации в ангаре:";
  Name: "m\i\a"; Description: "Ангары:";
   Name: "m\i\a\b"; Description: "Минималистичный ангар"; Flags: exclusive
   Name: "m\i\a\c"; Description: "Ангар 9 Мая"; Flags: exclusive
   Name: "m\i\a\d"; Description: "Песчаный ангар"; Flags: exclusive
   Name: "m\i\a\e"; Description: "Ангар Карта мира"; Flags: exclusive
  Name: "m\i\b"; Description: "Часы и дата";
  Name: "m\i\c"; Description: "Колесо загрузки";
   Name: "m\i\c\b"; Description: "Колесо загрузки в виде скорпиона"; Flags: exclusive
   Name: "m\i\c\a"; Description: "Колесо загрузки в виде шестеренки "; Flags: exclusive
   Name: "m\i\c\c"; Description: "Колесо загрузки в виде краба"; Flags: exclusive
  Name: "m\i\d"; Description: "Панель танков в два ряда";
  Name: "m\i\e"; Description: "Вертикальное дерево развития танков";
Name: "m\o"; Description: "Отмена режима Авто при выборе игрового сервера";
Name: "m\p"; Description: "Удаление тумана";
Name: "m\a"; Description: "Комплексный мод XVM";
  Name: "m\a\b"; Description: "Конфиг AlaCraD"; Flags: exclusive
Name: "m\s"; Description: "WoT_Tweaker 0.9.2";




[Files]

Source: "D:\Папка AlaCraD\1\ab\*"; DestDir: "{app}\res_mods\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\a\b
Source: "D:\Папка AlaCraD\1\n\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\n
Source: "D:\Папка AlaCraD\1\qa\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\q\a
Source: "D:\Папка AlaCraD\1\qb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\q\b
Source: "D:\Папка AlaCraD\1\qc\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\q\c
Source: "D:\Папка AlaCraD\1\qd\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\q\d
Source: "D:\Папка AlaCraD\1\ed\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\d
Source: "D:\Папка AlaCraD\1\ee\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\e
Source: "D:\Папка AlaCraD\1\ebb\*"; DestDir: "{app}\res_mods\xvm\res\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\b\b
Source: "D:\Папка AlaCraD\1\ebc\*"; DestDir: "{app}\res_mods\xvm\res\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\b\c
Source: "D:\Папка AlaCraD\1\ra\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\r\a
Source: "D:\Папка AlaCraD\1\rb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\r\b
Source: "D:\Папка AlaCraD\1\rc\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\r\c
Source: "D:\Папка AlaCraD\1\rd\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\r\d
Source: "D:\Папка AlaCraD\1\re\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\r\e
Source: "D:\Папка AlaCraD\1\t\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\t
Source: "D:\Папка AlaCraD\1\ya\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\y\a
Source: "D:\Папка AlaCraD\1\ib\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\b
Source: "D:\Папка AlaCraD\1\id\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\d
Source: "D:\Папка AlaCraD\1\ie\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\e
Source: "D:\Папка AlaCraD\1\s\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\s
Source: "D:\Папка AlaCraD\1\icc\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\c\c
Source: "D:\Папка AlaCraD\1\ica\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\c\a
Source: "D:\Папка AlaCraD\1\icb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\c\b
Source: "D:\Папка AlaCraD\1\iab\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\a\b
Source: "D:\Папка AlaCraD\1\iac\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\a\c
Source: "D:\Папка AlaCraD\1\iad\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\a\d
Source: "D:\Папка AlaCraD\1\iae\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\i\a\e
Source: "D:\Папка AlaCraD\1\p\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\p
Source: "D:\Папка AlaCraD\1\o\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\o
Source: "D:\Папка AlaCraD\1\yb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\y\b
Source: "D:\Папка AlaCraD\1\pa\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\p\a
Source: "D:\Папка AlaCraD\1\pb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\p\b
Source: "D:\Папка AlaCraD\1\pc\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\p\c
Source: "D:\Папка AlaCraD\1\pd\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\p\d
Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\{#Patch}\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist;
Source: "D:\Папка AlaCraD\1\wa\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\w\a
Source: "D:\Папка AlaCraD\1\wb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\w\b
Source: "D:\Папка AlaCraD\1\wc\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\w\c
Source: "D:\Папка AlaCraD\1\wd\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\w\d
Source: "D:\Папка AlaCraD\1\wf\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\w\f
Source: "D:\Папка AlaCraD\1\eaf\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\a\f
Source: "D:\Папка AlaCraD\1\eac\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\a\c
Source: "D:\Папка AlaCraD\1\ead\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\a\d
Source: "D:\Папка AlaCraD\1\eca\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\c\a
Source: "D:\Папка AlaCraD\1\eae\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\a\e
Source: "D:\Папка AlaCraD\1\ecc\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\c\c
Source: "D:\Папка AlaCraD\1\ecb\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\c\b
Source: "D:\Папка AlaCraD\1\ecd\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\c\d
Source: "D:\Папка AlaCraD\1\ece\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\c\e
Source: "D:\Папка AlaCraD\1\we\*"; DestDir: "{app}\res_mods\{#Patch}\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: m\w\e

Edited by AlaCraD

Share this post


Link to post

Short link
Share on other sites

Выбирает оба компонента вместо одного (эксклюзивный флаг стоит на обоих)! В чем проблема?

Во-первых, нужен скрин не секции [Files], а секции [Components]. И, на будущее, если прикрепляете какой-либо код, прячьте его под тег Кода (<> на панели инструментов, чуть выше поля, где вводится сообщение), а то код становится нечитабельным просто.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Во-первых, нужен скрин не секции [Files], а секции [Components]. И, на будущее, если прикрепляете какой-либо код, прячьте его под тег Кода (<> на панели инструментов, чуть выше поля, где вводится сообщение), а то код становится нечитабельным просто.

хорошо, исправлюсь. с проблемой сам разобрался - изменил путь до файлов с ...\eab на  ...\eae

Но все равно не понимаю, в чем была причина проблемы 

Edited by AlaCraD

Share this post


Link to post

Short link
Share on other sites

О, сразу виден пользователь ужасного "браузера" Гугл Хром с включённым бездушным переводом всего, что попадается "под руку". Фу.

Share this post


Link to post

Short link
Share on other sites

О, сразу виден пользователь ужасного "браузера" Гугл Хром с включённым бездушным переводом всего, что попадается "под руку". Фу.

Ну да, теперь, когда весь скрипт был введён под тег code, видно..

 

Но все равно не понимаю, в чем была причина проблемы

Из двух компонентов, которые ты заскринил, в скрипте есть только один: "m\a\b"

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Насчёт скачивания файлов. Такое искали? Прикрутил как раз распаковку архивов к этой штуке:

74d344b165c9.png

Share this post


Link to post

Short link
Share on other sites

Насчёт скачивания файлов. Такое искали? Прикрутил как раз распаковку архивов к этой штуке:

74d344b165c9.png

Да такое !!!

Share this post


Link to post

Short link
Share on other sites

Скрипт только для примера, у меня всё не так написано/описано/подключено! Пример примитивный, включайте воображение и фантазию! :heh:

Изначальный скрипт имел другой вид, я его немного покромсал под свои нужды. В любом случае рекомендую ознакомиться с оригиналом, справкой и примерами: https://code.google.com/p/inno-download-plugin/. Тестировал под 5.5.1ee2 (u).

 

[Setup]
#include "Embedded\idp.iss";

[Setup]
AppName= My Program
AppVersion= 1.0
DefaultDirName= C:\My Program
OutputDir=.

[Files]
Source: "Embedded\idp.dll"; Flags: dontcopy;
Source: "Embedded\7zA.exe"; Flags: dontcopy;
Source: "Key.png"; DestDir: "{app}"; Flags: overwritereadonly ignoreversion;

[Types]
Name: "full"; Description: "Full installation"; Flags: iscustom;

[Components]
Name: "Bla"; Description: "Bla-bla-bla"; Types: full;
Name: "Bla\1"; Description: "Bla-bla-bla-bla"; Types: full;
Name: "Bla\2"; Description: "Bla-bla-bla-bla-bla"; Types: full;

[_Code_]
/// --- UnPack Begin --- ///

procedure ExtractResources();
var
  ResultCode: Integer;
begin
  ExtractTemporaryFile('7zA.exe');
  CreateDir(ExpandConstant('{app}\7zA_Files'));
  CreateDir(ExpandConstant('{app}\res_mods'));
  FileCopy(ExpandConstant('{tmp}\7zA.exe'), ExpandConstant('{app}\7zA_Files\7zA.exe'), False);

  If (IsComponentSelected('Bla\1')) and (FileExists(ExpandConstant('{app}\hangar_1.7z'))) then
begin
  Exec(ExpandConstant('{app}\7zA_Files\7zA.exe'), 'x -y ..\hangar_1.7z -o..\res_mods', '', SW_Hide, ewWaitUntilTerminated, ResultCode);
  DeleteFile(ExpandConstant('{app}\hangar_1.7z'));
end;

  If (IsComponentSelected('Bla\2')) and (FileExists(ExpandConstant('{app}\hangar_2.7z'))) then
begin
  Exec(ExpandConstant('{app}\7zA_Files\7zA.exe'), 'x -y ..\hangar_2.7z -o..\res_mods', '', SW_Hide, ewWaitUntilTerminated, ResultCode);
  DeleteFile(ExpandConstant('{app}\hangar_2.7z'));
end;

  DelTree(ExpandConstant('{app}\7zA_Files'), True, True, True);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  If CurStep=ssDone then
begin
  ExtractResources();
end;
end;

/// --- UnPack End --- ///

procedure CurPageChanged(CurPageID: Integer);
begin
    if CurPageID = wpInstalling then
begin
    if IsComponentSelected('Bla\1') then
begin
    idpAddFile('http://www.com/hangar_1.7z', ExpandConstant('{app}\hangar_1.7z'));
end;
    if IsComponentSelected('Bla\2') then
begin
    idpAddFile('http://www.com/hangar_2.7z', ExpandConstant('{app}\hangar_2.7z'));
end;
end;
end;

procedure InitializeWizard();
begin
  idpDownloadAfter(wpInstalling);
end;

 

Для хранения файлов рекомендую использовать FTP-хранилище (например selectel.ru). Сервис обладает удобной закачкой файлов, контролем за ними, счётчиком скачиваний и т.д. При регистрации начисляется 10 рублей, который хватает для хранения файлов и обмен нескольких Гб трафика.

9c27a9c4581d.png

 

На самый худой случай можно создать на ucoz.ru бесплатный сайт (места дают 400 Мб).

 

З.Ы. Если не сможете подключить скрипт - ваши проблемы.

IDP_and_Extract_Example_AtotIK.rar

Edited by AtotIK
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Ну и кто осмелится выложить рабочий вариант?   :)

 Держи целых 6 (есть всё, что нужно для компиляции): Inno Download Plugin.rar

 

Для тех, кому горит, есть маленький лайфхак: из itd можно вытащить скрипт сравнения версий и из idp скрипт загрузки (а ща заспойлерю: мало кто из вас сможет разобраться в скрипте обновления из itd, просто не осилите [для тех, кому очень-очень горит: скрипт сравнения версий в itd называется example 3 2.0]). Кушайте :)

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...