FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   Blackbox Inno Setup Script (https://fileforums.com/showthread.php?t=94425)

Carldric Clement 05-10-2014 03:39

Quote:

Originally Posted by TsubasaHP (Post 434607)
I make compression by this tool : Conversion Quick Archive Packer by Razor12911

You can use my program it: Mini Compressor


TsubasaHP 05-10-2014 03:41

Quote:

Originally Posted by Carldric Clement (Post 434608)
There! Don't used precomp it! It will crash your installation it! Try it now! :rolleyes::cool:

+msrep+delta+lzma:a1:mfbt4:d158m:fb273:mc10 00:lc8

OK, Thanks, i will feedback the result.

TsubasaHP 05-10-2014 05:55

Quote:

There! Don't used precomp it! It will crash your installation it! Try it now!

+msrep+delta+lzma:a1:mfbt4:d158m:fb273:mc10 00:lc8
Carl,
it's not working...nothing happend.
The final size is very important to me. only these method worked for Middle-earth: Shadow of Mordor

-mprecomp+srep+delta+lzma:a1:mfbt4:d158m:fb273:mc10 00:lc8
-mprecomp+srep64+delta+lzma64:a1:mfbt4:d158m:fb273: mc1000:lc8

black box group used these method for Compression as well.

any idea?

EDIT : The Installer gave me these errors while extracting :
first:
Incorrect version of precomp.exe!

second:

ERROR : Unsupported Compression method.

I used v038 and 43,also . but same i had same error.

It's a problem of installer not Compression.

pakrat2k2 05-10-2014 08:51

in the setup folder where you have your backgrounds, sounds etc, you need to include the arc.ini so that the setup.exe knows what to use.

TsubasaHP 05-10-2014 11:15

Quote:

Originally Posted by pakrat2k2 (Post 434619)
in the setup folder where you have your backgrounds, sounds etc, you need to include the arc.ini so that the setup.exe knows what to use.

not worked and it's not only my problem. someone that know how to use it must edit files and script to Solve the problem for these methods.

-mprecomp+srep+delta+lzma:a1:mfbt4:d158m:fb273:mc10 00:lc8
-mprecomp+srep64+delta+lzma64:a1:mfbt4:d158m:fb273: mc1000:lc8

Carldric Clement 05-10-2014 17:34

Quote:

Originally Posted by TsubasaHP (Post 434613)
Carl,
it's not working...nothing happend.
The final size is very important to me. only these method worked for Middle-earth: Shadow of Mordor

-mprecomp+srep+delta+lzma:a1:mfbt4:d158m:fb273:mc10 00:lc8
-mprecomp+srep64+delta+lzma64:a1:mfbt4:d158m:fb273: mc1000:lc8

black box group used these method for Compression as well.

any idea?

EDIT : The Installer gave me these errors while extracting :
first:
Incorrect version of precomp.exe!

second:

ERROR : Unsupported Compression method.

I used v038 and 43,also . but same i had same error.

It's a problem of installer not Compression.

I forget! Remove the Delta & Precomp it!
-msrep+lzma:a1:mfbt4:d158m:fb273:mc10 00:lc8

PS
Code:

Delta Doesn't support from Black-Box Installation it!
They got many problems another times it will be
2 seconds or 3 seconds it!
Than Precomp another version has many got problem like v0.38, or what!
If they together like:
Precomp+Srep+Delta got problem it?
Remove The Precomp & Delta that doesn't support it!
Got It?


Gamer009 05-10-2014 23:24

guyz, the directX and vcredist installation, not working after the game installed !!!

no window for them appeared !!

i have put the files in the ouptu directory of the script and put the "dxseupt.exe" in [Output/DirectX]

but, nothing happened !!

-----------------------------------------------------------------------

plus, how i can put a registery file in the script !

-----------------------------------------------------------------------

PS: how i can make the #AppURL auto opened once the installation got completed ?

same like blackbox :D

Inge 06-10-2014 08:20

Quote:

Originally Posted by Gamer009 (Post 434651)
guyz, the directX and vcredist installation, not working after the game installed !!!

no window for them appeared !!

i have put the files in the ouptu directory of the script and put the "dxseupt.exe" in [Output/DirectX]

but, nothing happened !!

-----------------------------------------------------------------------

plus, how i can put a registery file in the script !

-----------------------------------------------------------------------

PS: how i can make the #AppURL auto opened once the installation got completed ?

same like blackbox :D

I never really used this Installer, but maby you have to define the correct Path's for Redist.

Example: DX is in Folder _CommonRedist\2010\DirectX\DXSETUP.exe you have to define this correct and maby set in the script a {src} before it.
Otherwise it's a bug.

Dante1995 06-10-2014 09:01

Quote:

Gamer009
but if we give you the code, how do you add it to properly (reading your comments) you do not have the capacity to do so, would you first tell us what you want to insert and someone will help you :rolleyes:



1)Open Browser After Installation
Code:


procedure CurStepChanged(CurStep: TSetupStep);
var
    ErrCode: integer;
begin
    if (CurStep=ssDone) then
    begin
        ShellExec('open', 'http://google.it/', '', '', SW_SHOW, ewNoWait, ErrCode);
    end;
end;

2)Password Compressor File .Bat
Code:

Title Compressor
echo off&color e
:start
cls
set choice1=


set EX=-xunins*
set Popt=--password=
set PASS=12345
set Option=a -ep1 -r -ed -ld -w.\
set Method=-msrep+lzma:a2:mfbt4:d256m:fb128:mc1000:lc8


set arc=
set retry=
echo.
set /p choice1=PathDir:
if "%choice1%"=="" goto start
cls
echo.
:data1
set arc=data.arc
if exist .\DISK_1\%arc% goto end
arc %Option% %Method% %Popt%%PASS% [email protected] %EX% -dp"%choice1%" .\DISK_1\%arc%
if ERRORLEVEL 1 goto arcfail
:end
echo.
echo.
pause
goto EOF
:arcfail
echo.
echo.WARNING: FreeArc returns an error in archive %arc%!
set /p retry=Do you wish to retry [Y/N]:
if /I "%retry%"=="Y" goto %arc:~0,5%
exit
:EOF

3)Components mode1
Code:

[Tasks]
Name: DX; Description: Install Microsoft DirectX; Flags: unchecked;
Name: VC; Description: Install Microsoft Visual C++ Redist; Flags: unchecked;

[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; Parameters: /Silent; StatusMsg: Installation Microsoft DirectX...; Flags: skipifdoesntexist; Tasks: DX; Check: CheckError
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /q; StatusMsg: Installation Microsoft Visual C++ Redist...; Flags: skipifdoesntexist; Tasks: VC; Check: CheckError

3b)Components mode2
Code:

[Components]
Name: "directx"; Description: "Install DirectX"
Name: "visualc"; Description: "Install Visual C++"
Name: "nvidiaphysx"; Description: "Install Nvidia Physx"
Name: "framework"; Description: "Install Framework"

  if CurStep=ssPostInstall then begin
    if DirectXCB.Checked then begin
      Status.Caption:='Installing DirectX...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 223;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\DirectX\DXSETUP.exe'),'/q',false);
    end;
    if NvidiaPhysx.Checked then begin
      Status.Caption:='Installing Nvidia Physx...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 227;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\PhysX.msi'),'/q',false);
    end;
    if VisualCCB.Checked then begin
      Status.Caption:='Installing Visual C++...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 227;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\vcredist_x86.exe'),'/q',false);
    end;
    if Framework.Checked then begin
      Status.Caption:='Installing Framework...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 227;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\dotnetfx.exe'),'/q',false);
    end;
  end;
  if (CurStep=ssInstall) and ISDoneError then begin
    Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
  end;
end;




Screenshot Compressor system and The End :)

Gamer009 06-10-2014 13:28

2 Attachment(s)
^^

nice, thnx alot <3

but i have the following bat file :

can you edit it for a password ?

+

in "blackbox" script v1.8 , there's already the compononets 3b

but it doesn't work !!!!

+

see the attached image about the appURL

Dante1995 06-10-2014 14:42

Code:

Title Compressor
echo off&color e
:start
RD /S /Q TMP DISK_1 DISK_2
cls
echo ################################################################################
echo #                              Alien Isolation                                #
echo ################################################################################
echo.
echo.
set GameDir=Y:\Alien Isolation
set Output1=Disk_1
set Output2=Disk_2
set EX=-xunins*
set Popt=--password=
set PASS=12345
set Option=arc a -ep1 -r -ed -ld -w.\TMP
set Method=-msrep+lzma:a2:mfbt4:d256m:fb128:mc1000:lc8
set arc=
set retry=
:data1
set arc=Setup-1.bin
if exist .\%Output1%\%arc% goto data2
%Option% %Method% %Popt%%PASS% %EX% -dp"%choice1%" .\%Output1%\%arc% "%GameDir%" [email protected]
if ERRORLEVEL 1 goto arcfail
:data2
set arc=Setup-2.bin
if exist .\%Output2%\%arc% goto end
%Option% %Method% %Popt%%PASS% %EX% -dp"%choice1%" .\%Output2%\%arc% "%GameDir%" [email protected]
if ERRORLEVEL 1 goto arcfail
:end
RD /S /Q TMP
echo.
echo.
pause
goto EOF
:arcfail
echo.
echo.WARNING: FreeArc returns an error in archive %arc%!
set /p retry=Do you wish to retry [Y/N]:
if /I "%retry%"=="Y" goto %arc:~0,5%
exit
:EOF


Gamer009 06-10-2014 16:37

ok, thnx a lot <3

i will try :)

+

this doesn't work : http://fileforums.com/attachment.php...1&d=1412627692

+

PS: the directX and vcredit installation lagged after installation completed !!!

and then it restarted my PC !!

Dante1995 07-10-2014 00:12

for me no restart

Code:

//----------This Installer Uses Inno Setup Unicode Version----------\\
#define AppName "Kurutucu"
#define AppPublisher "Fileforums"
#define AppVersion "1.0.8.0"
#define AppExec "Kurutucu.exe"
#define AppURL "https://www.facebook.com/cemal93"
#define AppSize "1000"               
#define SetupName "Setup" 
#define SetupOut "Output"

#define PrecompVer "Inside"

[Setup]
AppName={#AppName}
AppPublisher={#AppPublisher}
AppVersion={#AppVersion}
AppComments={#AppName}
DefaultDirName={pf}\{#AppPublisher}\{#AppName}
DefaultGroupName={#AppName}   
OutputBaseFilename={#SetupName}
OutputDir={#SetupOut}
SetupIconFile=Style\Setup.ico
WizardImageFile=Style\Background.bmp
WizardSmallImageFile=Style\smallbitmap.bmp
Compression=none
AlwaysRestart = no

[Icons]
Name: {group}\Uninstall {#AppName}; Filename: {app}\unins000.exe; WorkingDir: {app}; Check: CheckError
Name: {group}\{#AppName}; Filename: {app}\{#AppExec}; WorkingDir: {app}; Check: CheckError
Name: {commondesktop}\{#AppName}; Filename: {app}\{#AppExec}; WorkingDir: {app}; Check: CheckError

[Files]
Source: Include\*.*; DestDir: {tmp}; Flags: dontcopy
Source: Style\*.*; DestDir: {tmp}; Flags: dontcopy

[Messages]
SetupWindowTitle=Welcome to The Setup Wizard «{#AppName}»
 
[CustomMessages]
SoundCtrlButtonCaptionSoundOn=Music on
SoundCtrlButtonCaptionSoundOff=Music off

[Languages]
Name: eng; MessagesFile: compiler:Default.isl

[Components]
Name: "directx"; Description: "Install DirectX"
Name: "visualc"; Description: "Install Visual C++"
Name: "nvidiaphysx"; Description: "Install Nvidia Physx"
Name: "framework"; Description: "Install Framework"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[UninstallDelete]
Type: filesandordirs; Name: {app}

[_Code]
const
  BASS_SAMPLE_LOOP = 4;
  BASS_ACTIVE_STOPPED = 0;
  BASS_ACTIVE_PLAYING = 1;
  BASS_ACTIVE_STALLED = 2;
  BASS_ACTIVE_PAUSED  = 3;
  BASS_UNICODE = $80000000;
  BASS_CONFIG_GVOL_STREAM = 5;
const
  #ifndef UNICODE
    EncodingFlag = 0;
  #else
    EncodingFlag = BASS_UNICODE;
  #endif
type
  HSTREAM = DWORD;

function BASS_Init(device: LongInt; freq, flags: DWORD;
  win: HWND; clsid: Cardinal): BOOL;
  external 'BASS_Init@files:bass.dll stdcall';
function BASS_StreamCreateFile(mem: BOOL; f: string; offset1: DWORD;
  offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): HSTREAM;
  external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_Start: BOOL;
  external 'BASS_Start@files:bass.dll stdcall';
function BASS_Pause: BOOL;
  external 'BASS_Pause@files:bass.dll stdcall';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL;
  external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_SetConfig(option: DWORD; value: DWORD ): BOOL;
  external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_ChannelIsActive(handle: DWORD): DWORD;
  external 'BASS_ChannelIsActive@files:bass.dll stdcall';
function BASS_Free: BOOL;
  external 'BASS_Free@files:bass.dll stdcall';

var
  SoundStream: HSTREAM;
  SoundCtrlButton: TNewButton;

procedure SoundCtrlButtonClick(Sender: TObject);
begin
  case BASS_ChannelIsActive(SoundStream) of
    BASS_ACTIVE_PLAYING:
    begin
      if BASS_Pause then
        SoundCtrlButton.Caption :=
          ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOn}');
    end;
    BASS_ACTIVE_PAUSED:
    begin
      if BASS_Start then
        SoundCtrlButton.Caption :=
          ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOff}');
    end;
  end;
end;

{ RedesignWizardFormBegin } // Don't remove this line!
// Don't modify this section. It is generated automatically.
procedure RedesignWizardForm;
begin
  with WizardForm.ProgressGauge do
  begin
    Height := ScaleY(13);
  end;

{ ReservationBegin }
  // This part is for you. Add your specialized code here.

{ ReservationEnd }
end;
// Don't modify this section. It is generated automatically.
{ RedesignWizardFormEnd } // Don't remove this line!


type
#ifdef UNICODE
 PChar = PAnsiChar;
#endif
const
  PCFonFLY=true;
  notPCFonFLY=false;
var
  LabelPct1,LabelCurrFileName,LabelTime1,LabelTime2,LabelTime3: TLabel;
  ISDoneProgressBar1: TNewProgressBar;
  MyCancelButton: TButton;
  ISDoneCancel:integer;
  ISDoneError:boolean;
  PCFVer:double;

type
  TCallback = function (OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;

function WrapCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';

function ISArcExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile:boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@files:ISDone.dll stdcall delayload';
function IS7ZipExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'IS7zipExtract@files:ISDone.dll stdcall delayload';
function ISRarExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'ISRarExtract@files:ISDone.dll stdcall delayload';
function ISPrecompExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISPrecompExtract@files:ISDone.dll stdcall delayload';
function ISSRepExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISSrepExtract@files:ISDone.dll stdcall delayload';
function ISxDeltaExtract(CurComponent:Cardinal; PctOfTotal:double; minRAM,maxRAM:integer; InName, DiffFile, OutFile: AnsiString; DeleteInFile, DeleteDiffFile:boolean):boolean; external 'ISxDeltaExtract@files:ISDone.dll stdcall delayload';
function ISPackZIP(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString;ComprLvl:integer; DeleteInFile:boolean):boolean; external 'ISPackZIP@files:ISDone.dll stdcall delayload';
function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):boolean; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall delayload';

function Exec2 (FileName, Param: PAnsiChar;Show:boolean):boolean; external 'Exec2@files:ISDone.dll stdcall delayload';
function ISFindFiles(CurComponent:Cardinal; FileMask:AnsiString; var ColFiles:integer):integer; external 'ISFindFiles@files:ISDone.dll stdcall delayload';
function ISPickFilename(FindHandle:integer; OutPath:AnsiString; var CurIndex:integer; DeleteInFile:boolean):boolean; external 'ISPickFilename@files:ISDone.dll stdcall delayload';
function ISGetName(TypeStr:integer):PAnsichar; external 'ISGetName@files:ISDone.dll stdcall delayload';
function ISFindFree(FindHandle:integer):boolean; external 'ISFindFree@files:ISDone.dll stdcall delayload';
function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString;Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';

function SrepInit(TmpPath:PAnsiChar;VirtMem,MaxSave:Cardinal):boolean; external 'SrepInit@files:ISDone.dll stdcall delayload';
function PrecompInit(TmpPath:PAnsiChar;VirtMem:cardinal;PrecompVers:single):boolean; external 'PrecompInit@files:ISDone.dll stdcall delayload';
function FileSearchInit(RecursiveSubDir:boolean):boolean; external 'FileSearchInit@files:ISDone.dll stdcall delayload';
function ISDoneInit(RecordFileName:AnsiString; TimeType,Comp1,Comp2,Comp3:Cardinal; WinHandle, NeededMem:longint; callback:TCallback):boolean; external 'ISDoneInit@files:ISDone.dll stdcall';
function ISDoneStop:boolean; external 'ISDoneStop@files:ISDone.dll stdcall';
function ChangeLanguage(Language:AnsiString):boolean; external 'ChangeLanguage@files:ISDone.dll stdcall delayload';
function SuspendProc:boolean; external 'SuspendProc@files:ISDone.dll stdcall';
function ResumeProc:boolean; external 'ResumeProc@files:ISDone.dll stdcall';

function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
  if OveralPct<=1000 then ISDoneProgressBar1.Position := OveralPct;
  LabelPct1.Caption := IntToStr(OveralPct div 10)+'.'+chr(48 + OveralPct mod 10)+'%';
  LabelCurrFileName.Caption:=' Extracting File: '+MinimizePathName(CurrentFile, LabelCurrFileName.Font, LabelCurrFileName.Width-ScaleX(100));
  LabelTime1.Caption:=' Time Elapsed: '+TimeStr2;
  LabelTime2.Caption:='Time Remaining: '+TimeStr1;
 // LabelTime3.Caption:='Installing time:'+TimeStr3;
  Result := ISDoneCancel;
end;

procedure CancelButtonOnClick(Sender: TObject);
begin
  SuspendProc;
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then ISDoneCancel:=1;
  ResumeProc;
end;

procedure HideControls;
begin
  WizardForm.FileNamelabel.Hide;
  ISDoneProgressBar1.Hide;
  LabelPct1.Hide;
  LabelCurrFileName.Hide;
  LabelTime1.Hide;
  LabelTime2.Hide;
  MyCancelButton.Hide;
end;

procedure CreateControls;
var PBTop:integer;
begin
  PBTop:=ScaleY(150);
  ISDoneProgressBar1 := TNewProgressBar.Create(WizardForm);
  with ISDoneProgressBar1 do begin
    Parent  := WizardForm;
    Height  := 25;
    Left    := ScaleX(77);
    Top      := PBTop;
    Width    := ScaleX(500);
    Max      := 1000;
  end;
  LabelCurrFileName := TLabel.Create(WizardForm);
  with LabelCurrFileName do begin
    Parent  := WizardForm;
    AutoSize := False;
    Width    := ISDoneProgressBar1.Width+ScaleX(30);
    Left    := ISDoneProgressBar1.Left;
    Top      := PBTop-20;
  end;

  LabelTime1 := TLabel.Create(WizardForm);
  with LabelTime1 do begin
    Parent  := WizardForm;
    AutoSize := False;
    Width    := ISDoneProgressBar1.Width div 2;
    Left    := ISDoneProgressBar1.Left;
    Top      := PBTop + ScaleY(30);
  end;
  LabelTime2 := TLabel.Create(WizardForm);
  with LabelTime2 do begin
    Parent  := WizardForm;
    AutoSize := False;
    Width    := LabelTime1.Width+ScaleX(40);
    Left    := 400;
    Top      := LabelTime1.Top;
  end;
  LabelPct1 := TLabel.Create(WizardForm);
  with LabelPct1 do begin
    Parent    := WizardForm;
    AutoSize  := true;
    Font.Height:=-24;
    Left      := ISDoneProgressBar1.Left -33 + ISDoneProgressBar1.Width div 2;
    Top      := ISDoneProgressBar1.Top + ScaleY(70);
    //Width    := ScaleX(80);
  end;
//  LabelTime3 := TLabel.Create(WizardForm);
//  with LabelTime3 do begin
//    Parent  := WizardForm;
//    AutoSize := False;
//    Width    := 300;
//    Left    := 180;
//    Top      := 200;
//  end;
  MyCancelButton:=TButton.Create(WizardForm);
  with MyCancelButton do begin
    Parent:=WizardForm;
    Width:=ScaleX(150);
    Caption:='Cancel';
    Left:=ScaleX(347);
    Height:=ScaleX(30);
    Left:=(480);
    Top:=WizardForm.cancelbutton.top;
    OnClick:=@CancelButtonOnClick;
  end;
end;


function CheckError:boolean;
begin
  result:= not ISDoneError;
end;

// Importing LoadSkin API from ISSkin.DLL
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar);
external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';

// Importing UnloadSkin API from ISSkin.DLL
procedure UnloadSkin;
external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';

// Importing ShowWindow Windows API from User32.DLL
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external '[email protected] stdcall';

var
  WelcomeLbl,DirLbl,GroupLbl,TasksLbl,FreeSpaceLabel,NeedSpaceLabel,GameSpaceLabel,PartitionSpaceLabel,Status: TLabel;
  DirBevel,GroupBevel,TasksBevel,TasksSeparateBevel,Bevel1,Bevel11,Bevel2,Bevel3,Bevel4,Bevel5,Bevel6,Bevel7,Bevel8,Bevel9,Bevel20,Bevel21,Bevel22,Bevel23: TBevel;
  FreeMB,TotalMB: cardinal;

function InitializeSetup1(): Boolean;
begin
  ExtractTemporaryFile('isskin.dll');
        ExtractTemporaryFile('skin.cjstyles');
        LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
        Result := True;
end;

Function NumToStr(Float: Extended): String;
Begin
  Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
  while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
  SetLength(Result, Length(Result)-1);
End;

Function MbOrTb(Byte: Extended): String;
begin
if Byte < 1024 then Result:= NumToStr(Byte) + ' MB' else
  if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' GB' else
    Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' TB'
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var Path: String;
begin
  Path := ExtractFileDrive(WizardForm.DirEdit.Text);
  GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
  PartitionSpaceLabel.Caption:= ExpandConstant('Partition Space : ') + MbOrTb(TotalMB);
  FreeSpaceLabel.Caption := ExpandConstant('Free Space : ') + MbOrTb(FreeMB) + ' (' + IntToStr((FreeMB * 100) div TotalMB) + '%)';
  GameSpaceLabel.Caption := ExpandConstant('Game Space : ') + MbOrTb({#AppSize});
  NeedSpaceLabel.Caption := ExpandConstant('Total Needed Space : ') + MbOrTb({#AppSize});
  if (FreeMB<{#AppSize}) then
    FreeSpaceLabel.Font.Color:=clRed
  else
    PartitionSpaceLabel.Font.Color:=NeedSpaceLabel.Font.Color;
    WizardForm.NextButton.Enabled:=FreeMB>{#AppSize};
end;

var
  DirectXCB,VisualCCB,NvidiaPhysx,Framework,IconCB: TNewCheckBox;
//---COMPONENTS POSITION CONTROL---\\
procedure Tasks;
begin
  TasksBevel := TBevel.Create(WizardForm);
  with TasksBevel do
  begin
    Parent := WizardForm;
    Left := ScaleX(90);
    Top := ScaleY(150);
    Width := ScaleX(470);
    Height := ScaleY(73);
  end;
//------------------------\\

//---Top---\\
  Bevel20 := TBevel.Create(WizardForm);
  with Bevel20 do
  begin
    Parent := WizardForm;
    Left := ScaleX(92);
    Top := ScaleY(150);
    Width := ScaleX(470);
    Height := ScaleY(2);
  end;
//---Bottom---\\
    Bevel21 := TBevel.Create(WizardForm);
  with Bevel21 do
  begin
    Parent := WizardForm;
    Left := ScaleX(92);
    Top := ScaleY(308);
    Width := ScaleX(470);
    Height := ScaleY(2);
  end;
//---Left---\\
  Bevel22 := TBevel.Create(WizardForm);
  with Bevel22 do
  begin
    Parent := WizardForm;
    Left := ScaleX(92);
    Top := ScaleY(152);
    Width := ScaleX(2);
    Height := ScaleY(158);
  end;
//---Right---\\
  Bevel23 := TBevel.Create(WizardForm);
  with Bevel23 do
  begin
    Parent := WizardForm;
    Left := ScaleX(560);
    Top := ScaleY(152);
    Width := ScaleX(2);
    Height := ScaleY(156);
  end;
//------------------------\\
 
  DirectXCB := TNewCheckBox.Create(WizardForm);
  with DirectXCB do
  begin
    Parent := WizardForm;
    Left :=(112);
    Top :=(170);
    Width := ScaleX(265);
    Height := ScaleY(17);
    Caption:='Install DirectX';
  end;
 
  VisualCCB := TNewCheckBox.Create(WizardForm);
  with VisualCCB do
  begin
    Parent := WizardForm;
    Left :=(112);
    Top :=(190);
    Width := ScaleX(265);
    Height := ScaleY(17);
    Caption := 'Install Visual C ++';
  end;
 
  NvidiaPhysx := TNewCheckBox.Create(WizardForm);
  with NvidiaPhysx do
  begin
    Parent := WizardForm;
    Left :=(112);
    Top :=(210);
    Width := ScaleX(265);
    Height := ScaleY(17);
    Caption:='Install Nvidia Physx';
  end;
 
  Framework := TNewCheckBox.Create(WizardForm);
  with Framework do
  begin
    Parent := WizardForm;
    Left :=(112);
    Top :=(230);
    Width := ScaleX(265);
    Height := ScaleY(17);
    Caption:='Install Framework';
  end;
 
  TasksSeparateBevel := TBevel.Create(WizardForm);
  with TasksSeparateBevel do
  begin
    Parent := WizardForm;
    Left :=(10);
    Top :=(260);
    Width := TasksBevel.Width - 0;
    Height := ScaleY(2);
    Width := ScaleX(440);
    Left := ScaleX(107);
  end;
 
  IconCB := TNewCheckBox.Create(WizardForm);
  with IconCB do
  begin
    Parent := WizardForm;
    Left := (112);
    Top :=(275);
    Width := ScaleX(255);
    Height := ScaleY(17);
    Caption := 'Create Desktop Shortcut';
  end;
end;

//-----------------------------------\\

procedure LogoLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
  begin
  ShellExec('open', '{#AppURL}', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure InitializeWizard1();
begin
  WizardForm.WizardBitmapImage2.Cursor:=crHand;
  WizardForm.WizardBitmapImage2.OnClick:=@LogoLabelOnClick;
  WizardForm.ClientWidth:=654;
  WizardForm.ClientHeight:=402;
  WizardForm.InnerNotebook.Hide;
  WizardForm.OuterNotebook.Hide;
  WizardForm.WizardBitmapImage.Stretch:=True;
  WizardForm.WizardBitmapImage.Parent:=WizardForm;
  ExtractTemporaryFile ('logo.bmp');
  WizardForm.WizardBitmapImage2.Width := ScaleX(230);
  WizardForm.WizardBitmapImage2.Height := ScaleX(55);
  WizardForm.WizardBitmapImage2.Top:=340;
  WizardForm.WizardBitmapImage2.Left:=5;
  WizardForm.WizardBitmapImage2.Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp'));
  WizardForm.WizardBitmapImage2.Parent:=WizardForm;
  WizardForm.WizardSmallBitmapImage.Stretch:=True;
  WizardForm.WizardSmallBitmapImage.Parent:=WizardForm;
  WizardForm.WizardSmallBitmapImage.SetBounds(0,0,WizardForm.ClientWidth,90);
  WizardForm.Bevel1.Parent:=WizardForm;
  WizardForm.Bevel1.Top:=90;
  WizardForm.Bevel1.Width:=WizardForm.ClientWidth;
  WizardForm.Bevel.Parent:=WizardForm;
  WizardForm.Bevel.Top:=330;
  WizardForm.Bevel.Width:=WizardForm.ClientWidth;
  WizardForm.SelectDirBitmapImage.Parent:=WizardForm;
  WizardForm.SelectDirBitmapImage.Top:=125;
  WizardForm.SelectDirBitmapImage.Left:=40;
  WizardForm.DirEdit.Parent:=WizardForm;
  WizardForm.DirEdit.Top:=130;
  WizardForm.DirEdit.Left:=75;
  WizardForm.DirEdit.Width:=430;
  WizardForm.DirEdit.OnChange:=@GetFreeSpaceCaption;
  WizardForm.DirBrowseButton.Parent:=WizardForm;
  WizardForm.DirBrowseButton.Top:=125;
  WizardForm.DirBrowseButton.Left:=515;
  WizardForm.DirBrowseButton.Width:=90;
  WizardForm.DirBrowseButton.Height:=30;
  WizardForm.GroupEdit.Parent:=WizardForm;
  WizardForm.GroupEdit.Top:=255;
  WizardForm.GroupEdit.Left:=75;
  WizardForm.GroupEdit.Width:=430;
  WizardForm.GroupBrowseButton.Parent:=WizardForm;
  WizardForm.GroupBrowseButton.Top:=250;
  WizardForm.GroupBrowseButton.Left:=515;
  WizardForm.GroupBrowseButton.Width:=90;
  WizardForm.GroupBrowseButton.Height:=30;
  WizardForm.NoIconsCheck.Parent:=WizardForm;
  WizardForm.NoIconsCheck.Left:=75;
  WizardForm.NoIconsCheck.Top:=285;
  WizardForm.SelectGroupBitmapImage.Parent:=WizardForm;
  WizardForm.SelectGroupBitmapImage.Top:=250;
  WizardForm.SelectGroupBitmapImage.Left:=40;
  WizardForm.WizardBitmapImage.SetBounds(0,0,WizardForm.ClientWidth,330);
  WizardForm.NextButton.SetBounds(525,347,100,30);
  WizardForm.CancelButton.SetBounds(420,347,100,30);
  WizardForm.BackButton.SetBounds(315,347,100,30);
 
  WelcomeLbl:=TLabel.Create(WizardForm);
  With WelcomeLbl do begin
    Transparent:=true;
    Parent:=WizardForm;
    Alignment:=taCenter;
    Caption:='Welcome to The "{#AppName}" Setup Wizard' + #13#10#13#10 + 'Its recomended that you close all other applications before continuing.' + #13#10#13#10 + 'Click "Next" to continue';
    Font.Color:=clWhite;
    Font.Size:=9;
    SetBounds(126,205,400,90);
  end;
//
  Tasks;
  DirBevel := TBevel.Create(WizardForm);
  with DirBevel do
  begin
    Parent := WizardForm;
    Left := ScaleX(28);
    Top := ScaleY(110);
    Width := ScaleX(594);
    Height := ScaleY(110);
  end;

//-----Bevel Line Page 2 Bottom-----\\

//---Top---\\
  Bevel3 := TBevel.Create(WizardForm);
  with Bevel3 do
  begin
    Parent := WizardForm;
    Left := ScaleX(27);
    Top := ScaleY(235);
    Width := ScaleX(594);
    Height := ScaleY(2);
  end;
//---Bottom---\\
    Bevel4 := TBevel.Create(WizardForm);
  with Bevel4 do
  begin
    Parent := WizardForm;
    Left := ScaleX(27);
    Top := ScaleY(313);
    Width := ScaleX(595);
    Height := ScaleY(2);
  end;
//---Left---\\
  Bevel5 := TBevel.Create(WizardForm);
  with Bevel5 do
  begin
    Parent := WizardForm;
    Left := ScaleX(27);
    Top := ScaleY(236);
    Width := ScaleX(2);
    Height := ScaleY(78);
  end;
//---Right---\\
  Bevel6 := TBevel.Create(WizardForm);
  with Bevel6 do
  begin
    Parent := WizardForm;
    Left := ScaleX(620);
    Top := ScaleY(235);
    Width := ScaleX(2);
    Height := ScaleY(79);
  end;
//------------------------\\

//-----Bevel Line Page 2 Top-----\\

//---Top---\\
    Bevel7 := TBevel.Create(WizardForm);
  with Bevel7 do
  begin
    Parent := WizardForm;
    Left := ScaleX(27);
    Top := ScaleY(110);
    Width := ScaleX(595);
    Height := ScaleY(2);
  end;
//---Bottom---\\
    Bevel8 := TBevel.Create(WizardForm);
  with Bevel8 do
  begin
    Parent := WizardForm;
    Left := ScaleX(27);
    Top := ScaleY(250);
    Width := ScaleX(595);
    Height := ScaleY(2);
  end;
//---Right---\\
    Bevel9 := TBevel.Create(WizardForm);
  with Bevel9 do
  begin
    Parent := WizardForm;
    Left := ScaleX(620);
    Top := ScaleY(110);
    Width := ScaleX(2);
    Height := ScaleY(108);
  end;
//---Left---\\
    Bevel11 := TBevel.Create(WizardForm);
  with Bevel11 do
  begin
    Parent := WizardForm;
    Left := ScaleX(27);
    Top := ScaleY(111);
    Width := ScaleX(2);
    Height := ScaleY(109);
  end;

//------------------------\\
  Status:=TLabel.Create(WizardForm);
  With Status do begin
    //Transparent:=true;
    Parent:=WizardForm;
    Alignment:=taCenter;
    //Font.Color:=clWhite;
    Font.Height:=-15;
    SetBounds(0,218,650,30);
  end;

  DirLbl:=TLabel.Create(WizardForm);
  With DirLbl do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    Caption:=' Setup will install The game into the following folder ';
    Font.Color:=clWhite;
    SetBounds(52,105,251,15);
  end;
  GroupLbl:=TLabel.Create(WizardForm);
  With GroupLbl do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    Caption:=' Setup will create shortcuts in the following Start ';
    Font.Color:=clWhite;
    SetBounds(52,230,235,15);
  end;
  TasksLbl:=TLabel.Create(WizardForm);
  With TasksLbl do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    Caption:='Select the components you want to install; clear the components you do not want to' + #13#10 + 'install. Click Next when you are ready to continue.';
    //Font.Color:=clWhite;
    SetBounds(125,105,407,30);
  end;
//---PARTITION SPACE---\\
  PartitionSpaceLabel:=TLabel.Create(WizardForm);
  With PartitionSpaceLabel do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    //Font.Color:=clWhite;
    Font.Height:=-13;
    SetBounds(75,160,200,30);
  end;
//---FREE SPACE---\\
  FreeSpaceLabel:=TLabel.Create(WizardForm);
  With FreeSpaceLabel do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    //Font.Color:=clWhite;
    Font.Height:=-13;
    SetBounds(335,160,200,30);
  end;
//---GAME SPACE---\\
  GameSpaceLabel:=TLabel.Create(WizardForm);
  With GameSpaceLabel do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    //Font.Color:=clWhite;
    Font.Height:=-13;
    SetBounds(75,190,200,30);
  end;
//---Total Needed Space---\\
  NeedSpaceLabel:=TLabel.Create(WizardForm);
  With NeedSpaceLabel do begin
    //Transparent:=true;
    Parent:=WizardForm;
    //Alignment:=taCenter;
    //Font.Color:=clWhite;
    Font.Height:=-13;
    SetBounds(335,190,200,30);
  end;
end;

Procedure HideComponents();
begin
    WizardForm.WizardSmallBitmapImage.Hide;
    WizardForm.Bevel1.Hide;
    DirBevel.Hide;
    Bevel3.Hide;
    Bevel4.Hide;
    Bevel5.Hide;
    Bevel6.Hide;
    Bevel7.Hide;
    Bevel8.Hide;
    Bevel9.Hide;
    Bevel11.Hide;
    Bevel20.Hide;
    Bevel21.Hide;
    Bevel22.Hide;
    Bevel23.Hide;
    TasksBevel.Hide;
    DirLbl.Hide;
    GroupLbl.Hide;
    TasksLbl.Hide;
    DirectXCB.Hide;
    VisualCCB.Hide;
    NvidiaPhysx.Hide;
    Framework.Hide;
    IconCB.Hide;
    WizardForm.SelectDirBitmapImage.Hide;
    WizardForm.SelectGroupBitmapImage.Hide;
    WizardForm.DirEdit.Hide;
    WizardForm.GroupEdit.Hide;
    WizardForm.DirBrowseButton.Hide;
    WizardForm.GroupBrowseButton.Hide;
    WizardForm.NoIconsCheck.Hide;
    WizardForm.WizardBitmapImage.Hide;
    WelcomeLbl.Hide;
//    WizardForm.ComponentsList.Hide;
//    WizardForm.TasksList.Hide;
    TasksSeparateBevel.Hide;
    PartitionSpaceLabel.Hide;
    FreeSpaceLabel.Hide;
    GameSpaceLabel.Hide;
    NeedSpaceLabel.Hide;
    Status.Hide;
end;


procedure CurStepChanged1(CurStep: TSetupStep);
var Comps1,Comps2,Comps3, TmpValue:cardinal;
    FindHandle1,ColFiles1,CurIndex1,tmp:integer;
    ExecError:boolean;
    InFilePath,OutFilePath,OutFileName:PAnsiChar;
    ErrCode: integer;
  begin

    if(CurStep = ssDone) then begin
    ShellExec('open', '{#AppURL}', '', '', SW_SHOW, ewNoWait, ErrCode);

  end;
 
begin
  if CurStep = ssInstall then begin  //If necessary, you can change to ssPostInstall
    WizardForm.ProgressGauge.Hide;
    WizardForm.CancelButton.Hide;
    CreateControls;
    WizardForm.StatusLabel.Caption:='Extracting Files...';
    ISDoneCancel:=0;

#ifdef PrecompVer
#if PrecompVer == "0.38"
ExtractTemporaryFile('precomp038.exe');
#endif
#if PrecompVer == "0.40"
ExtractTemporaryFile('precomp040.exe');
#endif
#if PrecompVer == "0.41"
ExtractTemporaryFile('precomp041.exe');
#endif
#if PrecompVer == "0.42"
ExtractTemporaryFile('precomp042.exe');
#endif
#if PrecompVer == "0.43"
ExtractTemporaryFile('precomp043.exe');
#endif
#if PrecompVer == "Inside"
ExtractTemporaryFile('CLS-precomp.dll');
ExtractTemporaryFile('CLS-MSC.dll');
ExtractTemporaryFile('CLS-srep.dll');
ExtractTemporaryFile('precomp.exe');
#endif
#endif
ExtractTemporaryFile('arc.ini');
ExtractTemporaryFile('facompress.dll');
ExtractTemporaryFile('facompress_mt.dll');
ExtractTemporaryFile('XDelta3.dll');
ExtractTemporaryFile('7z.dll');
ExtractTemporaryFile('PackZIP.exe');
ExtractTemporaryFile('english.ini');
ExtractTemporaryFile('FreeArc-LZMA-x64.exe');
ExtractTemporaryFile('srep.exe');
ExtractTemporaryFile('srep64.exe');
ExtractTemporaryFile('unarc.dll');
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('packjpg_dll1.dll');
ExtractTemporaryFile('zlib1.dll');

    Comps1:=0; Comps2:=0; Comps3:=0;
#ifdef Components
    TmpValue:=1;
    if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue;    //component 1
    TmpValue:=TmpValue*2;
    if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue;    //component 2
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue;    //component 3
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue;    //component 4
#endif

#ifdef precomp
  PCFVer:={#precomp};
#else
  PCFVer:=0;
#endif
    ISDoneError:=true;
    if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, 512, @ProgressCallback) then begin
      repeat
        ChangeLanguage('english');
        if not SrepInit('',512,0) then break;
        if not PrecompInit('',128,PCFVer) then break;
        if not FileSearchInit(true) then break;
        #include 'Archives.ini'
        ISDoneError:=false;
      until true;
      ISDoneStop;
    end;
    HideControls;
    WizardForm.CancelButton.Visible:=true;
    WizardForm.CancelButton.Enabled:=false;
    Status.Show;
  end;
  if CurStep=ssPostInstall then begin
    if DirectXCB.Checked then begin
      Status.Caption:='Installing DirectX...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 223;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\DirectX\DXSETUP.exe'),'/Silent',false);
    end;
    if NvidiaPhysx.Checked then begin
      Status.Caption:='Installing Nvidia Physx...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 227;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\PhysX.exe'),'/q',false);
    end;
    if VisualCCB.Checked then begin
      Status.Caption:='Installing Visual C++...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 227;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\vcredist_x86.exe'),'/q',false);
    end;
    if Framework.Checked then begin
      Status.Caption:='Installing Framework...';
      Status.Left := 200;
      Status.Top := 200;
      Status.Width := 227;
      Status.Height := 20;
      Exec2(ExpandConstant('{src}\Redist\dotnetfx.exe'),'/q',false);
    end;
  end;
  if (CurStep=ssInstall) and ISDoneError then begin
    Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
  end;
  end;
  end;

//-------- First Page --------\\
procedure CurPageChanged1(CurPageID: integer);
begin
  if CurPageID=wpWelcome then begin
    HideComponents;   
    WizardForm.Position:=poScreenCenter;
    Bevel3.Hide;
    Bevel4.Hide;
    Bevel5.Hide;
    Bevel6.Hide;
    WizardForm.WizardBitmapImage.Show;
    WelcomeLbl.Show;
    WizardForm.CancelButton.show;
  end;
//-------- Second Page --------\\
  if CurPageID=wpSelectDir then begin
    HideComponents;
    WizardForm.Position:=poScreenCenter;
    WizardForm.WizardSmallBitmapImage.Show;
    WizardForm.Bevel1.Show;
    DirBevel.Show;
    Bevel3.show;
    Bevel4.Show;
    Bevel5.Show;
    Bevel6.Show;
    Bevel7.Show;
    Bevel8.hide;
    Bevel9.Show;
    Bevel11.Show;
    WizardForm.Caption:= 'Select Dir «{#AppName}»';
    WizardForm.SelectDirBitmapImage.Show;
    WizardForm.SelectGroupBitmapImage.Show;
    WizardForm.DirEdit.Show;
    WizardForm.GroupEdit.Show;
    WizardForm.DirBrowseButton.Show;
    WizardForm.GroupBrowseButton.Show;
    WizardForm.NoIconsCheck.Show;
    DirLbl.Show;
    GroupLbl.Show;
    PartitionSpaceLabel.Show;
    FreeSpaceLabel.Show;
    GameSpaceLabel.Show;
    NeedSpaceLabel.Show;
    GetFreeSpaceCaption(nil);
  end;
//--------  Third page  --------\\
  if CurPageID=wpSelectTasks then begin
    HideComponents;
    WizardForm.Position:=poScreenCenter;
    WizardForm.Caption:= 'Select Tasks «{#AppName}»';
    WizardForm.WizardSmallBitmapImage.Show;
    WizardForm.Bevel1.Show;
    Bevel3.Hide;
    Bevel4.Hide;
    Bevel5.Hide;
    Bevel6.Hide;
    Bevel20.Show;
    Bevel21.Show;
    Bevel22.Show;
    Bevel23.Show;
    WizardForm.ComponentsList.Show;
    WizardForm.TasksList.Show;
    DirectXCB.Show;
    DirectXCB.Checked:= True;
    VisualCCB.Show;
    VisualCCB.Checked:= True;
    NvidiaPhysx.Checked:= False;
    NvidiaPhysx.Enabled:= False;
    NvidiaPhysx.Show;
    Framework.Show;
    Framework.Enabled:= False;
    Framework.Checked:= False;
    IconCB.Show;
    IconCB.Checked:= True;
    TasksBevel.Hide;
    TasksLbl.Show;
    WizardForm.NextButton.Caption:='Install';
    TasksSeparateBevel.Show;
  end;
//--------Installation Page--------\\
  if CurPageID=wpInstalling then begin
    TasksSeparateBevel.Hide;
    HideComponents;
    WizardForm.Position:=poScreenCenter;
    WizardForm.WizardSmallBitmapImage.Show;
    WizardForm.Caption:= 'Installing «{#AppName}»';
    WizardForm.Bevel1.Show;
    WizardForm.TasksList.CheckItem(0,IconCB.Checked);
  end;
//--------Game was successfully installed PAGE--------\\
  if CurPageID=wpFinished then begin
    HideComponents;
    WizardForm.Position:=poScreenCenter;
    WizardForm.WizardBitmapImage.Show;
    WelcomeLbl.Show;
    WelcomeLbl.Left:=145;
    WizardForm.Caption:= 'Finish «{#AppName}» Setup Wizard';
    WelcomeLbl.Caption:='«{#AppName}» was successfully installed on your computer.' + #13#10#13#10 + 'Run the game from shortcut in "start" menu or Desktop shortcut.' + #13#10#13#10 + 'Click "Finish" to exit the installation program.';
  end;
//--------Game Fail To Install PAGE--------\\
  if (CurPageID = wpFinished) and ISDoneError then
  begin
    //LabelTime3.Hide;
    WizardForm.Caption:= 'Error! «{#AppName}»';
    WelcomeLbl.Font.Color:= clRed;
    WelcomeLbl.Caption:= 'Setup encountered an error while installing «{#AppName}»' + #13#10#13#10 + 'Changes were not saved , please re-run the setup again.';
    WelcomeLbl.Left:=163;
  end;
end;

function ShouldSkipPage1(PageID: Integer): Boolean;
begin
  if (PageID=wpSelectProgramGroup) or (PageID=wpReady) or (PageID=wpSelectComponents) then Result:=true;
end;

procedure DeinitializeSetup1();
begin
        ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
        UnloadSkin();
end;

procedure ShowSplashScreen(p1:HWND;p2:AnsiString;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10 :integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure InitializeWizard2();
begin
  ExtractTemporaryFile('Splash.png');
  ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}\Splash.png'),1000,3000,1000,0,255,True,$FFFFFF,10);
end;

function InitializeSetup(): Boolean;
begin
  Result := InitializeSetup1(); if not Result then exit;
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('music.mp3');
  if BASS_Init(-1, 44100, 0, 0, 0) then
  begin
    SoundStream := BASS_StreamCreateFile(False,
    ExpandConstant('{tmp}\music.mp3'), 0, 0, 0, 0,
    EncodingFlag or BASS_SAMPLE_LOOP);
    BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);
    BASS_ChannelPlay(SoundStream, False);

    SoundCtrlButton := TNewButton.Create(WizardForm);
    SoundCtrlButton.Parent := WizardForm;
    SoundCtrlButton.SetBounds(210,347,100,30);
    SoundCtrlButton.Caption :=
    ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOff}');
    SoundCtrlButton.OnClick := @SoundCtrlButtonClick;
  RedesignWizardForm;
  InitializeWizard1();
  InitializeWizard2();
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  CurStepChanged1(CurStep);

end;

procedure CurPageChanged(CurPageID: Integer);
begin
  CurPageChanged1(CurPageID);
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := ShouldSkipPage1(PageID); if not Result then exit;
end;

procedure DeinitializeSetup();
begin

  BASS_Free();
  DeinitializeSetup1();
end;


felice2011 07-10-2014 02:50

1 Attachment(s)
You solved by installing the components, even to me by error?

Dante1995 07-10-2014 03:17

basta inserire la slash feli /Silent

ops eng
insert slash /silent


All times are GMT -7. The time now is 08:24.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com