;Знак ; означает, что эта строка информационная и не будет задействована в компиляции.
;Скачать программу Inno Setup , как и всё необходимое можно здесь http://forum.ru-board.com/topic.cgi?forum=5&topic=24767&start=0#lt
;Этот скрипт вы можете вставить в программу.
[Setup]
;Основные директивы секции можно задать с помощью мастера, встроенного в программу.
AppName=MyMod
;Название мода.
AppVerName=MyMod версия 1.4
;Версия мода. Обязательно должна иметь значение AppName и номер версии.
DefaultDirName={pf}
;Выбор пути установки через "Обзор".В данном случае по умолчанию будет предложено установить программу в Program Files.Константа {pf}.
;Может иметь вид DefaultDirName={pf}\MyMod.
DefaultGroupName=MyMod
;Директива, которая определяет имя группы меню Пуск по умолчанию.
OutputDir=C:\Documents and Settings\user\Рабочий стол
;Куда будет помещен скомпилированный инсталлятор.
OutputBaseFilename=MyMod версия 1.4
;Задаётся имя получаемого инсталлятора.
Compression=lzma
;Метод сжатия.
SolidCompression=yes
;Уплотненное сжатие.
AppendDefaultDirName=no
;При значении yes, при выборе пути установки через "Обзор" автоматически добавляется папка с именем взятым из DefaultDirName.
;Например (при значении yes) DefaultDirName={pf}\MyMod, при выборе в "Обзоре" D:\Games получаем D:\Games\MyMod.
DirExistsWarning=no
;При значении yes инсталлятор всегда будет выдавать сообщение "Папка: … уже существует."Вы хотите продолжить установку в эту папку?" при попытке установки в существующую папку.
ShowComponentSizes=yes
;При значении yes будет показываться размер компонентов в списке выбора компонентов.
InfoBeforeFile=C:\Documents and Settings\User\Рабочий стол\Папка с файлами для инсталляции\MyInfoBefore.txt
;В этом текстовике можете поместить нужную для установки информацию... .
;Будет отображаться перед страницей выбора папки установки в окне инсталлятора.
;Файл MyInfoBefore.txt связан с секцией [Files].
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
;Выбор языка. Без этой секции, язык интерфейса мастера установки будет английский.
[Files]
Source: C:\Documents and Settings\User\Рабочий стол\Папка с файлами для инсталляции\MyInfoBefore.txt; DestDir: "{app}"
;Source: Полный путь, откуда берётся файл для компиляции.
;DestDir: Куда должен установиться файл в системе пользователя.
;Константа "{app}" означает, что папка, куда должен установиться файл выбирается пользователем в окне выбора пути установки.
;В данном примере константе "{app}" будет присвоено значение "D:\Games\SEGA\Medieval II Total War"(D:-диск пользователя, где установлена игра).
Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\data\*; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs overwritereadonly
;Знак * означает, что из папки \data\ берутся все файлы.
;Flags: ignoreversion Установить файл, который уже установлен в системе пользователя.Перемещает существующие файлы, не обращая внимание на номера версий.
;Flags: recursesubdirs Указывает искать файлы с тем же именем в подпапках папки,указанной в параметре Source.
;Flags: overwritereadonly Всегда перезаписывает файл с отметкой "только для чтения".
;Все флаги подробно описаны в хелпе, который идёт с программой.
Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\MyMod\*; DestDir: "{app}\MyMod"; Flags: ignoreversion recursesubdirs overwritereadonly
Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\MyMod.cfg; DestDir: "{app}"; Flags: ignoreversion
;Определённые свойства ярлыку задаём Parameters: в секции [Icons].
Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\export_descr_buildings.txt; Components: A; DestDir: "{app}\MyMod\data\"; Flags: ignoreversion recursesubdirs overwritereadonly
Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\descr_strat.txt; Components: A; DestDir: "{app}\MyMod\data\world\maps\campaign\imperial_campaign\"; Flags: ignoreversion recursesubdirs overwritereadonly
Source: C:\Documents and Settings\user\Рабочий стол\Папка с файлами для инсталляции\export_descr_unit.txt; Components: A; DestDir: "{app}\MyMod\data\"; Flags: ignoreversion recursesubdirs overwritereadonly
;Компоненты, которые пользователь может установить на выбор. В данном случае все три файла принадлежат одному компоненту А, который описан в секции [Components].
[Icons]
Name: {userdesktop}\MyMod.exe; Filename: "{app}\medieval2.exe"; Parameters: " @MyMod.cfg"; WorkingDir: "{app}"; Tasks: DesktopIcon
;Name: Задаём имя и расположение создаваемого ярлыка.В данном примере ярлык MyMod.exe будет помещен на рабочем столе,константа{userdesktop}. В свойствах ярлыка получаем "D:\Games\SEGA\Medieval II Total War\medieval2.exe" @MyMod.cfg
;Filename: Полный путь к файлу, на который указывает ярлык.
;Parameters: Параметры командной строки для ярлыка.
;WorkingDir: Папка, из которой запускается программа.
;Tasks: Вызывает задание, описанное в секции [Tasks].
Name: {userdesktop}\Удалить MyMod.exe; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; Tasks: DesktopIcon
[Tasks]
;В этой секции, описываем задания для создания ярлыков и сохранения оригинальных файлов.
Name: src; Description: Сохранить оригинальные файлы игры; Flags: exclusive
;Делаем Backup через секцию [Code].
;Description: Описание компонента.
;Flags: exclusive Пользователь не сможет отменить выбор этого пункта. Будет установлен в любом случае.
Name: DesktopIcon; Description: Создать ярлык MyMod на рабочем столе; Flags: unchecked
Name: DesktopIcon; Description: Создать ярлык удалить MyMod на рабочем столе; Flags: unchecked
;Flags: unchecked По умолчанию задание не будет выбрано(галочка снята).
[Types]
;Секция определяет типы установки.
Name: viborochnaya; Description: Выбрать компоненты; Flags: iscustom
;Flags: iscustom Указывает инсталятору, что тип компонента является выборочным.
[Components]
Name: A; Description: Обычные цены на строительство и юнитов; Types: viborochnaya
;Description: Описание отображается на странице выбора компонентов в окне инсталлятора.
[Code]
;Необходимо знание языков программирования.
function MoveFile(const srcFile, destFile: PChar): Integer;
external ' Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript stdcall';
procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
if IsTaskSelected('src') then
begin
basePath := ExpandConstant('{app}');
srcFile := ExpandConstant(CurrentFileName);
shortPath := srcFile;
StringChangeEx(shortPath, basePath, '', True);
destFile := ExpandConstant('{app}\Backup') + shortPath;
ForceDirectories(ExtractFilePath(destFile));
MoveFile(PChar(srcFile), PChar(destFile));
end;
end;
//Vatu NeCatanen. (Дмитрий Кобзов).
Реклама
Следующая > |
---|