El Sanchez, к сожалению твой код не работает. Или правильнее будет сказать, работает не до конца. Страница в выбором папки установки и правда появилась.
https://i106.fastpic.ru/big/2019/061...eabf7dd4c8.png
Вот только файл config.ksc с текстом
Код:

(const) %[
"saveDataLocation" => "file://./{app}\fateavedata"
]
в папке с игрой не появляется. Может я что-то не так сделал?
Скрытый текст
Код:

; Скрипт создан при помощи мастера создания скриптов.
; СМ. ДОКУМЕНТАЦИЮ ДЛЯ ИЗУЧЕНИЯ ДЕТАЛЕЙ ОТНОСИТЕЛЬНО СОЗДАНИЯ ФАЙЛОВ СКРИПТА INNO SETUP!
#define MyAppName "Fate/Stay Night [Realta Nua] - Ultimate Edition"
#define MyAppVerName "Fate/Stay Night [Realta Nua] - Ultimate Edition v0.9.1"
#define MyAppPublisher "Type-Moon"
#define MyAppExeName "Fate.exe"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
DefaultDirName=D:\Games\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=D:\
OutputBaseFilename=setup
DisableWelcomePage=no
SetupIconFile=D:\Fate/Stay Night [Realta Nua] - Ultimate Edition\icon.ico
WizardImageFile=D:\Fate/Stay night\WizardImageFile.bmp
WizardSmallImageFile=D:\Fate/Stay night\WizardSmallImageFile.bmp
Compression=lzma/ultra64
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=1073741824
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "D:\Fate/Stay Night [Realta Nua] - Ultimate Edition\Fate.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Fate/Stay Night [Realta Nua] - Ultimate Edition\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; ОТМЕТЬТЕ: Не используйте "Флажки: Проигнорировать версию" на любых общедоступных системных файлах
[Code ]
procedure RtlMoveMemory(Dest: PAnsiChar; Source: string; Len: Integer); external 'RtlMoveMemory@kernel32.dll stdcall';
var
SaveDataLocationPage: TInputDirWizardPage;
procedure SetSaveDataLocation;
var
S1: string;
S2: AnsiString;
begin
S1 := SaveDataLocationPage.Values[0];
StringChangeEx(S1, ':', '', True);
StringChangeEx(S1, '\', '/', True);
S1 := '%["saveDataLocation" => "file://./' + S1 + '"]';
S2 := StringOfChar(#0, Length(S1) shl 1);
RtlMoveMemory(S2, S1, Length(S2));
S2 := Chr($FF) + Chr($FE) + S2;
SaveStringToFile(ExpandConstant(CurrentFileName), S2, False);
end;
procedure CreateSaveDataLocationPage;
begin
SaveDataLocationPage := CreateInputDirPage(wpSelectDir, 'Выбор папки сохранений', 'В какую папку должна сохраняться игра Fate/Stay Night [Realta Nua] - Ultimate Edition?', 'Программа настроит сохранения игры Fate/Stay Night [Realta Nua] - Ultimate Edition в следующую папку.', False, 'fateavedata');
SaveDataLocationPage.Add('Нажмите «Далее», что бы продолжить. Если вы хотите выбрать другую папку, нажмите «Обзор».');
end;
procedure InitializeWizard;
begin
CreateSaveDataLocationPage;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
SaveDataLocationPage.ID:
if SaveDataLocationPage.Values[0] = '' then
SaveDataLocationPage.Values[0] := ExpandConstant('{app}\fateavedata');
end;
end;
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent
А еще, можно как то разобрать уже созданный установщик что б узнать исходный код? Я не знаю в какой программе он был создан, но очень бы хотелось его разобрать...