Код:

; Этот сценарий создан с помощью Мастера Inno Setup.
; ОБРАТИТЕСЬ К СПРАВОЧНОЙ ДОКУМЕНТАЦИИ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ВСЕ ВОЗМОЖНОСТИ INNO SETUP!
#define MyAppName "Artificial Academy 2"
#define MyAppVersion "2.0.1"
#define MyAppPublisher "Illusion"
#define MyAppExeName "AA2Play.exe"
[Setup]
; Примечание: Значение AppId является уникальным идентификатором для этого приложения.
; Не используйте одно и тоже значение AppId для разных приложений.
; (Для создания нового значения GUID, выберите в меню "Инструменты" пункт "Создать GUID".)
AppId={{37EDDB6D-1F9B-474F-8FF4-57CC8277B1A7}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName=D:\Games\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=D:\Inno Setup
OutputBaseFilename=setup
SetupIconFile=D:\Inno Setup\Installer\ico.ico
WizardImageFile=D:\Inno Setup\Installer\WizardImage.bmp
WizardSmallImageFile=D:\Inno Setup\Installer\WizardSmallImage.bmp
Compression=lzma2/ultra64
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=1536000000
[Languages]
Name: "russian"; MessagesFile: "compiler:\Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Components]
Name: "Main"; Description: "Artificial Academy 2"; Types: full compact custom; Flags: fixed
Name: "Anticensor"; Description: "Антицензор"; Types: custom
Name: "Anticensor\MKIII"; Description: "МКIII"; Types: custom; Flags: exclusive
Name: "Anticensor\MKIII\clothes"; Description: "Пак одежды для MKIII анцензора"; Types: custom; Flags: exclusive
Name: "Anticensor\MKIII\clothes\garter_belt"; Description: "Аддон на подвязки"; Types: custom;
Name: "Anticensor\SVII"; Description: "SVII"; Types: custom; Flags: exclusive
Name: "Anticensor\SVII\clothes"; Description: "Пак одежды для SVII анцензора"; Types: custom; Flags: exclusive
Name: "Anticensor\SVII\clothes\texture"; Description: "Пак текстур для одежды"; Types: custom;
Name: "Anticensor\SVII\clothes\extra_a"; Description: "Extra A пак одежды для SVII анцензора"; Types: custom; Flags: exclusive
Name: "Anticensor\SVII\clothes\extra_a\texture"; Description: "Пак тестру для одежды Extra A"; Types: custom; Flags: exclusive
Name: "Anticensor\SVII\clothes\extra_h5"; Description: "Extra H5 пак одежды для SVII анцензора"; Types: custom; Flags: exclusive
Name: "Anticensor\SVII\clothes\extra_h5\texture"; Description: "Пак тестру для одежды Extra H5"; Types: custom; Flags: exclusive
Name: "Anticensor\SVII\clothes\garter_belt"; Description: "Аддон на подвязки"; Types: custom;
Name: "Hairpack"; Description: "Пак дополнительных причесок"; Types: custom;
Name: "Override"; Description: "Пак дополнительных лиц и причесок"; Types: custom;
Name: "Russification"; Description: "Русификатор"; Types: custom;
Name: "ProgramFiles"; Description: "Дополнительные приложения"; Types: custom;
Name: "ProgramFiles\ReiEditAA2"; Description: "ReiEditAA2"; Types: custom;
[Files]
Check: AA2Decrypt_unpack; Source: "D:\Inno Setup\Installer\0 Delete after install\AA2Decrypt_unpack.bat"; DestDir: "{tmp}"; BeforeInstall: ChangeCaption('AA2Decrypt_unpack.bat'); AfterInstall: install_this_file; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\*"; DestDir: "{app}"; Components: Main; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "D:\Inno Setup\Installer\2a [AA2][Uncensor][3D MK-III][FA][v2.0][Various]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\MKIII; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2a1 [AA2][HEXA Clothing Collection][MK-III][v5.2][Various]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\MKIII\clothes; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2a2 [AA2][HEXACC][Garter Belt][v1.5][Various]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\MKIII\clothes\garter_belt; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b [AA2][SVII Uncensor][3D Pubes][All-In-One][v1.6]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b1 [AA2][SVII Clothing Collection][3D Pubes][v5.0]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b1a SVII Clothing Collection - Texture Pack v5.0\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes\texture; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b2 [AA2][SVII Clothing Collection][Extra A][3D Pubes][v1.2.1]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes\texture; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b2a SVII Clothing Collection - Extra A - Texture Pack v1.2\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes\texture; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b3 [AA2][SVII Clothing Collection][Extra H5][Censored][v1.0]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes\texture; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b3a SVII Clothing Collection - Extra H5 - Texture Pack v1.0\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes\texture; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b4 [AA2][SVII Clothing Collection][Garter Belt][v1.5]\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\SVII\clothes\garter_belt; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\3 [AA2][HEXA Hairpack][RE][v3.0][Various]\Artificial Academy 2*"; DestDir: "{app}"; Components: Hairpack; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\4 [AA2][HEXA Override Collection][v3.5][Various]\Artificial Academy 2*"; DestDir: "{app}"; Components: Override; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\ReiEditAA2 0.9.5.3b\Artificial Academy 2*"; DestDir: "{app}"; Components: ProgramFiles\ReiEditAA2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\SVII Clothing Collection - ReiEdit v5.0\Artificial Academy 2*"; DestDir: "{app}"; Components: ProgramFiles\ReiEditAA2 and Anticensor\SVII; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\Artificial Academy 2\*"; DestDir: "{app}"; Components: Main; Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
; Примечание: Не используйте' флаги "ignoreversion" для общих системных файлов.
[Сode]
procedure install_this_file();
var res:integer; file, path : string;
begin
file := ExpandConstant('{tmp}\AA2Decrypt_unpack.bat'); path := ExpandConstant('{tmp}');
if FileExists(file) then Exec(file, 'параметры',path,SW_SHOW,ewWaitUntilTerminated,res) else MsgBox('Файл' + ' ' + file + #13#10 + 'не найден'), mbInformation, MB_OK);
end;
Function AA2Decrypt_unpack():boolean;
begin
if это_приложение_уже_установлено then Result := True else Result := False;
end;
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\data\AA2Decrypt.bat"; WorkingDir: {app}/data; Description: Упаковка папок...; Flags: waituntilterminated
[UninstallDelete]
Name: {app}\data\*.pp; Type: files