|
#11
|
|||
|
|||
|
Below is the FULL Script
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// Simple Script - Thanks KaktoR, Cesar82, DiCaPrIo ////////// Uses ISDONE library v0.6 final thanks to ProFrager (https://krinkels.org/resources/isdone.67/) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define Name "The Sims 4" ;; Insert Name of Program Here #define AppVersion "1.89.214.1030" ;; Program Version #define Size "51GB" ;; This is just a string, type size in MB or GB, it's up to you! #define Binary "Game\Bin\TS4_x64.exe" ;; Type full path to EXE file #define myextension "data.bin" ;; You can edit this to be whatever you want #define EnableVclStyles //Remove // to enable VCL styles support #define enablemusic /* Remove ; to enable music support */ //// You do not need to change anything below this line! //// #define Resources "Include\*" [Setup] AllowCancelDuringInstall=yes AllowNetworkDrive=no AllowRootDirectory=no AppName={#Name} AppVersion={#AppVersion} DefaultDirName={sd}\Games\{#Name} DisableDirPage=yes DisableFinishedPage=yes DisableProgramGroupPage=yes DisableReadyMemo=yes DisableReadyPage=yes DisableWelcomePage=yes OutputDir=. OutputBaseFilename=Setup SetupIconFile=Script\icon.ico UninstallFilesDir={app} UnInstallable=yes [Files] Source: Script\ISDONE.DLL; DestDir: {tmp}; Flags: dontcopy Source: Script\ENGLISH.INI; DestDir: {tmp}; Flags: dontcopy Source: Script\LOGOIMAGE.BMP; DestDir: {tmp}; Flags: dontcopy #ifdef enablevclstyles Source: Script\VCLSTYLESINNO.DLL; DestDir: {tmp}; Flags: dontcopy Source: Script\STYLE.VSF; DestDir: {tmp}; Flags: dontcopy #endif #ifdef enablemusic Source: Script\BASS.DLL; DestDir: {tmp}; Flags: dontcopy Source: Script\MUSIC.MP3; DestDir: {tmp}; Flags: dontcopy #endif Source: {#Resources}; DestDir: {tmp}; Flags: dontcopy [Icons] Name: "{commondesktop}\{#Name}"; Filename: "{app}\{#Binary}"; Check: CreateADesktopIcon [Code] type TCallback = function (OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): LongWord; var DesktopIconCheckBox: TNewCheckBox; Progress: TNewProgressBar; RequiredLabel: TLabel; ISDoneCancel: Integer; ISDoneError: Boolean; LogoImage: TBitmapImage; #ifdef EnableVclStyles procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@{tmp}\VclStylesInno.dll stdcall delayload'; procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@{tmp}\VclStylesInno.dll stdcall delayload'; #endif function FileSearchInit(RecursiveSubDir: Boolean): Boolean; external 'FileSearchInit@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 Exec2 (FileName, Param: PAnsiChar;Show: Boolean): Boolean; external 'Exec2@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 ProgressCallback(OveralPct,CurrentPct: Integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAn siChar): LongWord; begin if OveralPct <= 1000 then Progress.Position := OveralPct; Result := ISDoneCancel; end; function CreateADesktopIcon: Boolean; begin Result := DesktopIconCheckBox.Checked and (not ISDoneError); end; ///// Code by DiCaPrIo ///// function InitializeSetup:boolean; begin #define FHandle #define FRst #define Mask Resources #sub ProcessFiles #define FileName FindGetFileName(FHandle) ExtractTemporaryFile('{#FileName}'); #endsub #for {FHandle = FRst = FindFirst(Mask, 0); FRst; FRst = FindNext(FHandle)} ProcessFiles Result:=True; end; ///////////////////////////// procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean); begin ISDoneCancel := 1; Cancel := True; Confirm := False; end; procedure InitializeWizard(); begin with WizardForm do begin #ifdef EnableVclStyles ExtractTemporaryFile('VCLSTYLESINNO.DLL'); ExtractTemporaryFile('STYLE.VSF'); LoadVCLStyle(ExpandConstant('{tmp}\STYLE.VSF')); #endif Bevel.Hide; Caption := '{#Name} | Setup'; InnerNotebook.Hide; OuterNotebook.Hide; Position := poScreenCenter; WizardBitmapImage.Show; WizardForm.ClientWidth := ScaleX(345); WizardForm.ClientHeight := ScaleY(200); end; with WizardForm.DirBrowseButton do begin Parent := WizardForm; SetBounds(ScaleX(305), ScaleY(120), ScaleX(30), ScaleY(25)); Caption := '...' end; with WizardForm.DirEdit do begin Parent := WizardForm; SetBounds(ScaleX(10), ScaleY(122), ScaleX(285), ScaleY(25)); end; Requiredlabel := TLabel.Create(WizardForm); with Requiredlabel do begin Parent := WizardForm; SetBounds(ScaleX(10), ScaleY(152), ScaleX(390), ScaleY(25)); RequiredLabel.Caption := ExpandConstant('Required Space: {#Size}'); Font.Style := [fsBold]; end; DesktopIconCheckBox := TNewCheckBox.Create(WizardForm); with DesktopIconCheckBox do begin Parent := WizardForm; SetBounds(ScaleX(10), ScaleY(170), ScaleX(150), ScaleY(20)); Caption := ExpandConstant('Create a Desktop Icon'); Checked := False; Font.Style := [fsBold]; end; Progress:= TNewProgressBar.Create(WizardForm); with Progress do begin Parent := WizardForm; SetBounds(ScaleX(10), ScaleY(122), ScaleX(325), ScaleY(25)); Max := 1000; end; ExtractTemporaryFile('logoimage.bmp'); LogoImage := TBitmapImage.Create(WizardForm); with LogoImage do begin Name := 'LogoImage'; Parent := WizardForm; Stretch := True; Bitmap.AlphaFormat := afDefined; SetBounds(ScaleX(10), ScaleY(10), ScaleX(325), ScaleY(100)); Bitmap.LoadFromFile(ExpandConstant('{tmp}\logoimag e.bmp')); end; end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpWelcome then begin LogoImage.Show; Progress.Hide; RequiredLabel.Show; WizardForm.CancelButton.Show; end; if CurPageID = wpInstalling then begin Progress.Show; DesktopIconCheckBox.Enabled := False; WizardForm.DirEdit.Hide; WizardForm.DirBrowseButton.Hide; end; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin ISDoneCancel := 0; ISDoneError := True; if ISDoneInit(ExpandConstant('{tmp}\records.inf'), $F777, 0, 0, 0, MainForm.Handle, 512, @ProgressCallback) and FileSearchInit(True) then begin ExtractTemporaryFile('ENGLISH.INI'); ChangeLanguage('English'); if FileExists(ExpandConstant('{tmp}\CLS-SREP.dll')) and (not IsIniSectionEmpty('SREP', ExpandConstant('{tmp}\CLS.ini'))) then SetIniString('SREP', 'TempPath', ExpandConstant('{app}'), ExpandConstant('{tmp}\CLS.ini')); if FileExists(ExpandConstant('{tmp}\CLS-SREP_NEW.dll')) and (not IsIniSectionEmpty('SREP_NEW', ExpandConstant('{tmp}\CLS.ini'))) then SetIniString('SREP_NEW', 'TempPath', ExpandConstant('{app}'), ExpandConstant('{tmp}\CLS.ini')); if FileExists(ExpandConstant('{tmp}\CLS-SREP_OLD.dll')) and (not IsIniSectionEmpty('SREP_OLD', ExpandConstant('{tmp}\CLS.ini'))) then SetIniString('SREP_OLD', 'TempPath', ExpandConstant('{app}'), ExpandConstant('{tmp}\CLS.ini')); if FileExists(ExpandConstant('{tmp}\CLS-PRECOMP.dll')) and (not IsIniSectionEmpty('PRECOMP', ExpandConstant('{tmp}\CLS.ini'))) then SetIniString('PRECOMP', 'TempPath', ExpandConstant('{app}'), ExpandConstant('{tmp}\CLS.ini')); repeat if not ISArcExtract(0, 0, ExpandConstant('{src}\*{#MyExtension}'), ExpandConstant('{app}'), '', False, '', ExpandConstant('{tmp}\Arc.ini'), ExpandConstant('{app}'), False) then Break; ISDoneError := False; until True; ISDoneStop; end; end; if (CurStep = ssPostInstall) and ISDoneError then begin Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', False); end; if CurStep = ssDone then begin if not ISDoneError then MsgBox('Installation Success.', mbInformation, MB_OK) else MsgBox('Installation Fail.', mbInformation, MB_OK); end; end; procedure DeinitializeSetup(); begin #ifdef EnableVclStyles UnLoadVCLStyles(); //Unload the VCL Style if it was enabled. #endif end; [UninstallDelete] Type: filesandordirs; Name: {app} |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Light Installer Script (LIS) - DiskSpan_GUI | Cesar82 | Conversion Tutorials | 227 | 30-05-2026 05:01 |
| Ultimate Conversion Compressor (UCC) | vollachr | Conversion Tutorials | 55 | 26-04-2021 09:27 |
| INDEX - Conversion Tutorial Index | Razor12911 | Conversion Tutorials | 5 | 11-06-2020 02:05 |