Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 11-07-2022, 09:17
Wikinoob Wikinoob is offline
Registered User
 
Join Date: Apr 2018
Location: UK
Posts: 43
Thanks: 26
Thanked 11 Times in 8 Posts
Wikinoob is on a distinguished road
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}
Reply With Quote
Sponsored Links
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

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



All times are GMT -7. The time now is 09:11.


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