Victor_Dobrov
Приветствую!
Добавил UsePreviousAppDir=false,всё равно инсталлятор по умолчанию предлагает установить мод в C:\Program Files\Rome-TotalWar, а нужно в C:\Program Files\The Creative Assembly\Rome - Total War
И ещё вопрос:
В своём скрипте хотел добиться такой последовательности:Запускается батник,который распаковывает некоторые файлы-затем заменяю распакованные файлы-потом с помощью другово батника,запаковываю эти файлы и удаляю хвосты.В скрипте в секции филес всё указал по порядку+использовал AfterInstall.Чёт не выходит...
[more=вот собственно скрипт][Setup]
AppName=Mod
AppVerName=Mod
AppPublisher=Mod Team
DefaultDirName={reg:HKLM\SOFTWARE\The Creative Assembly\Rome - Total War,InstallPath|{pf}\Rome-TotalWar}
DisableDirPage=no
DefaultGroupName=Mod
OutputDir=D:\Mod
OutputBaseFilename=Mod_Setup
Compression=lzma/ultra
SolidCompression=yes
UsePreviousAppDir=false
[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: D:\Mod\data_m\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source: unpackmusic.bat; DestDir: {app}; AfterInstall: Unpack(); Flags: ignoreversion
Source: D:\Mod\data_unpack\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Patch_for_Music_Mod.bat; DestDir: {app}; AfterInstall: Pack(); Flags: ignoreversion
Source: D:\Mod\data_patch\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: setup.ico; DestDir: {app}
[registry]
Root: HKLM; Subkey: "Software\Mod Team\Mod"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Flags: uninsdeletevalue
[Icons]
Name: {group}\{cm:UninstallProgram,Mod}; Filename: {uninstallexe}
Name: {commondesktop}\Mod; Filename: {app}\RomeTW-BI.EXE; WorkingDir: {app}; IconFilename: {app}\setup.ico; Parameters: " -nm"
Name: {group}\Mod; Filename: {app}\rometw-bi.exe; WorkingDir: {app}; IconFilename: {app}\setup.ico; IconIndex: 0; Parameters: " -nm"
[Code]
procedure Unpack();
var
ResultCode: Integer;
begin
Exec(ExpandConstant('{app}\unpackmusic.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
DeleteFile(ExpandConstant('{app}\unpackmusic.bat'));
end;
procedure Pack();
var
ResultCode: Integer;
begin
Exec(ExpandConstant('{app}\Patch_for_Music_Mod.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
DeleteFile(ExpandConstant('{app}\Patch_for_Music_Mod.bat'));
DelTree(ExpandConstant('{app}')+'\data\sounds\data', True, True, True);
end;[/more]
Добавлено:
P.S. Инсталлятор сам должен найти игру,не обязательно С:\...
Приветствую!
Добавил UsePreviousAppDir=false,всё равно инсталлятор по умолчанию предлагает установить мод в C:\Program Files\Rome-TotalWar, а нужно в C:\Program Files\The Creative Assembly\Rome - Total War
И ещё вопрос:
В своём скрипте хотел добиться такой последовательности:Запускается батник,который распаковывает некоторые файлы-затем заменяю распакованные файлы-потом с помощью другово батника,запаковываю эти файлы и удаляю хвосты.В скрипте в секции филес всё указал по порядку+использовал AfterInstall.Чёт не выходит...
[more=вот собственно скрипт][Setup]
AppName=Mod
AppVerName=Mod
AppPublisher=Mod Team
DefaultDirName={reg:HKLM\SOFTWARE\The Creative Assembly\Rome - Total War,InstallPath|{pf}\Rome-TotalWar}
DisableDirPage=no
DefaultGroupName=Mod
OutputDir=D:\Mod
OutputBaseFilename=Mod_Setup
Compression=lzma/ultra
SolidCompression=yes
UsePreviousAppDir=false
[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: D:\Mod\data_m\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source: unpackmusic.bat; DestDir: {app}; AfterInstall: Unpack(); Flags: ignoreversion
Source: D:\Mod\data_unpack\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Patch_for_Music_Mod.bat; DestDir: {app}; AfterInstall: Pack(); Flags: ignoreversion
Source: D:\Mod\data_patch\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: setup.ico; DestDir: {app}
[registry]
Root: HKLM; Subkey: "Software\Mod Team\Mod"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Flags: uninsdeletevalue
[Icons]
Name: {group}\{cm:UninstallProgram,Mod}; Filename: {uninstallexe}
Name: {commondesktop}\Mod; Filename: {app}\RomeTW-BI.EXE; WorkingDir: {app}; IconFilename: {app}\setup.ico; Parameters: " -nm"
Name: {group}\Mod; Filename: {app}\rometw-bi.exe; WorkingDir: {app}; IconFilename: {app}\setup.ico; IconIndex: 0; Parameters: " -nm"
[Code]
procedure Unpack();
var
ResultCode: Integer;
begin
Exec(ExpandConstant('{app}\unpackmusic.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
DeleteFile(ExpandConstant('{app}\unpackmusic.bat'));
end;
procedure Pack();
var
ResultCode: Integer;
begin
Exec(ExpandConstant('{app}\Patch_for_Music_Mod.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
DeleteFile(ExpandConstant('{app}\Patch_for_Music_Mod.bat'));
DelTree(ExpandConstant('{app}')+'\data\sounds\data', True, True, True);
end;[/more]
Добавлено:
P.S. Инсталлятор сам должен найти игру,не обязательно С:\...