[more]#define MainExeX9 "{app}\HAWX.exe"
#define MainExeX10 "{app}\HAWX_dx10.exe"
#define GDFBinary "{app}\HAWX.exe"
#define MyAppNameX9 "Tom Clancy''s H.A.W.X - DirectX 9"
#define MyAppNameX10 "Tom Clancy''s H.A.W.X - DirectX 10"
[Setup]
AppName=Tom Clancy's H.A.W.X
AppVerName=Tom Clancy's H.A.W.X
DefaultDirName={pf}\Ubisoft\Tom Clancy's H.A.W.X
DefaultGroupName=Ubisoft\Tom Clancy's H.A.W.X
AllowNoIcons=true
OutputDir=.\
OutputBaseFilename=Setup
Compression=lzma/ultra
SolidCompression=true
InternalCompressLevel=ultra
AllowRootDirectory=true
AppendDefaultDirName=true
AppendDefaultGroupName=true
WizardImageFile=.\embedded\WizardImage.bmp
WizardSmallImageFile=.\embedded\WizardSmallImage.bmp
UninstallDisplayName=Tom Clancy's H.A.W.X
DiskSpanning=true
DiskSliceSize=734003200
LanguageDetectionMethod=none
ShowUndisplayableLanguages=false
ShowLanguageDialog=yes
VersionInfoDescription=Tom Clancy's H.A.W.X Setup
UninstallDisplayIcon={app}\HAWX.exe
UninstallFilesDir={app}\Uninstall
VersionInfoVersion=1.01
VersionInfoCompany=Ubisoft Bucharest
VersionInfoTextVersion=1.01
VersionInfoCopyright=Ubisoft Bucharest
AppPublisher=GFI Руссобит
[Languages]
Name: russian; MessagesFile: compiler:Default.isl
Name: english; MessagesFile: compiler:Languages\English.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
[Files]
Source: .\Uninstall\GameuxInstallHelper.dll; DestDir: {app}\Uninstall; Flags: overwritereadonly
Source: .\FireWallInstall\FirewallInstallHelper.dll; DestDir: {app}
Source: .\Files\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: {group}\Tom Clancy's H.A.W.X - DirectX 9; Filename: {app}\HAWX.exe; WorkingDir: {app}; IconFilename: {app}\HAWX.exe; IconIndex: 0
Name: {group}\Tom Clancy's H.A.W.X - DirectX 10; Filename: {app}\HAWX_dx10.exe; WorkingDir: {app}; IconFilename: {app}\HAWX_dx10.exe; IconIndex: 0
Name: {group}\Uninstall; Filename: {uninstallexe}; WorkingDir: {app}
Name: {commondesktop}\Tom Clancy's H.A.W.X; Filename: {app}\HAWX.exe; Tasks: desktopicon; WorkingDir: {app}; IconFilename: {app}\HAWX.exe; MinVersion: 0,5.01.2600; OnlyBelowVersion: 0,6.0.6000
Name: {commondesktop}\Tom Clancy's H.A.W.X; Filename: {app}\HAWX_dx10.exe; Tasks: desktopicon; WorkingDir: {app}; IconFilename: {app}\HAWX_dx10.exe; MinVersion: 0,6.0.6000
[Run]
Filename: {app}\HAWX.exe; Description: {cm:LaunchProgram,Tom Clancy's H.A.W.X}; Flags: nowait postinstall skipifsilent unchecked; WorkingDir: {app}; Tasks: ; Languages: ; MinVersion: 0,5.01.2600; OnlyBelowVersion: 0,6.0.6000
Filename: {app}\HAWX_dx10.exe; Description: {cm:LaunchProgram,Tom Clancy's H.A.W.X}; Flags: nowait postinstall skipifsilent unchecked; WorkingDir: {app}; MinVersion: 0,6.0.6000
[Registry]
Root: HKLM; Subkey: SOFTWARE\Ubisoft; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X; ValueName: language; ValueType: Dword; ValueData: $9
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X\1.00.00000; ValueType: String
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X\1.01.00000; ValueType: String
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X\GU_DX9\GameUpdate; ValueName: execPath; ValueType: String; ValueData: {app}\HAWX.exe
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X\GU_DX9\GameUpdate; ValueName: installdir; ValueType: String; ValueData: {app}
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X\GU_DX9\GameUpdate; ValueName: language; ValueType: String; ValueData: us
Root: HKLM; Subkey: SOFTWARE\Ubisoft\Tom Clancy's H.A.W.X\GU_DX9\GameUpdate; ValueName: info; ValueType: String; ValueData: 0c6bbe22ec0ce54a91b41f4b93e44607
[CustomMessages]
russian.DelSave=Вы хотите удалить сохранения и настройки игры?
english.DelSave=You wish to remove preservations and game options?
[Code]
type
TGUID = record
Data1: Cardinal;
Data2,
Data3: Word;
Data4: array [0..8] of char;
end;
function GenerateGUID(var GUID: TGUID): Cardinal; external 'GenerateGUID@files:GameuxInstallHelper.dll stdcall setuponly';
function AddToGameExplorer(Binary: String; Path: String; InstallType: Integer; var GUID: TGUID): Cardinal; external 'AddToGameExplorerA@files:GameuxInstallHelper.dll stdcall setuponly';
function CreateTask(InstallType: Integer; var GUID: TGUID; TaskType: Integer; TaskNumber: Integer; TaskName: String; Binary: String; Parameters: String): Cardinal; external 'CreateTaskA@files:GameuxInstallHelper.dll stdcall setuponly';
function RetrieveGUIDForApplication(Binary: String; var GUID: TGUID): Cardinal; external 'RetrieveGUIDForApplicationA@{app}\Uninstall\GameuxInstallHelper.dll stdcall uninstallonly';
function RemoveFromGameExplorer(var GUID: TGUID): Cardinal; external 'RemoveFromGameExplorer@{app}\Uninstall\GameuxInstallHelper.dll stdcall uninstallonly';
function RemoveTasks(var GUID: TGUID): Cardinal; external 'RemoveTasks@{app}\Uninstall\GameuxInstallHelper.dll stdcall uninstallonly';
function AddApplicationToExceptionList(path: String; name: String): Boolean; external 'AddApplicationToExceptionListA@files:FirewallInstallHelper.dll stdcall setuponly';
function RemoveApplicationFromExceptionList(path: String): Boolean; external 'RemoveApplicationFromExceptionListA@{app}\FirewallInstallHelper.dll stdcall uninstallonly';
const
PlayTask = 0;
var
GUID: TGUID;
PageNameLabel, PageDescriptionLabel: TLabel;
procedure CurStepChanged(CurStep: TSetupStep);
var
Binary, MainExeX9, MainExeX10: String;
pathX9, pathX10, nameX9, nameX10: String;
begin
if CurStep = ssInstall then
GenerateGUID(GUID);
if CurStep = ssPostInstall then
begin
Binary:=ExpandConstant('{#GDFBinary}');
MainExeX9:=ExpandConstant('{#MainExeX9}');
MainExeX10:=ExpandConstant('{#MainExeX10}');
AddToGameExplorer(Binary, ExpandConstant('{app}'), 3, GUID);
CreateTask(3, GUID, PlayTask, 0, 'Играть Tom Clancy''s H.A.W.X - DirectX 9', MainExeX9, '');
CreateTask(3, GUID, PlayTask, 1, 'Играть Tom Clancy''s H.A.W.X - DirectX 10', MainExeX10, '');
pathX9:=ExpandConstant('{#MainExeX9}');
pathX10:=ExpandConstant('{#MainExeX10}');
nameX9:=ExpandConstant('{#MyAppNameX9}');
nameX10:=ExpandConstant('{#MyAppNameX10}');
AddApplicationToExceptionList(pathX9, nameX9);
AddApplicationToExceptionList(pathX10, nameX10);
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
Binary: String;
GUID: TGUID;
pathX9, pathX10: String;
begin
if CurUninstallStep=usUninstall then
begin
pathX9:=ExpandConstant('{#MainExeX9}');
pathX10:=ExpandConstant('{#MainExeX10}');
RemoveApplicationFromExceptionList(pathX9)
RemoveApplicationFromExceptionList(pathX10)
UnloadDll(ExpandConstant('{app}\FirewallInstallHelper.dll'));
begin
Binary:=ExpandConstant('{#GDFBinary}');
RetrieveGUIDForApplication(Binary, GUID);
RemoveFromGameExplorer(GUID);
RemoveTasks(GUID);
UnloadDll(ExpandConstant('{app}\Uninstall\GameuxInstallHelper.dll'));
begin
if CurUninstallStep=usUninstall then
begin
If DirExists(ExpandConstant('{userdocs}')+'\Tom Clancy''s H.A.W.X')
then
case MsgBox(ExpandConstant('{cm:DelSave}'), mbInformation, MB_YESNO)
of IDYES:
begin
DelTree(ExpandConstant('{app}'), True, True, True)
DelTree(ExpandConstant('{userdocs}')+'\Tom Clancy''s H.A.W.X', True, True, True)
end;
end;
end;
end;
end;
end;
end;[/more]
Добавлено: У кавонибуть есть скрипт вот зтого AutoRun'a