FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   Simple Installer Script (https://fileforums.com/showthread.php?t=104745)

ScOOt3r 17-01-2022 15:32

Is there anyway to add Install Time, how long it took to install, to this.

thanks

ScOOt3r

kuyhaa 19-02-2022 21:24

how to add password in this installer (support text and number password)

i try change this pass: ka321

*{#MyExtension}'), ExpandConstant('{app}'), '', False, 'ka321'

but still error

Behnam2018 23-02-2022 19:57

1 Attachment(s)
Please FIX ERROR

:( Sad8669 23-02-2022 21:05

Try removing one "l" letter from the word "fille"

Wikinoob 10-07-2022 01:19

Bass.dll
 
Hey all, brilliant script but I cannot seem to get music playing during the install process, maybe its just me but could someone have a look at my script image or post a working script please.

Many Thanks

Wiki

https://imgur.com/a/KTop1Mi

https://imgur.com/a/KTop1Mi

[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: dontcop

Masquerade 10-07-2022 12:06

Quote:

Originally Posted by Wikinoob (Post 497531)
Hey all, brilliant script but I cannot seem to get music playing during the install process

Did you enable music in the config at the top of the script?

Code:

//#define enablemusic
//Remove // to enable music support


Wikinoob 11-07-2022 08:49

Quote:

Originally Posted by Masquerade (Post 497538)
Did you enable music in the config at the top of the script?

Code:

//#define enablemusic
//Remove // to enable music support


This is what I have so far...

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////// 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 "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

KaktoR 11-07-2022 08:56

It works here

ScOOt3r 11-07-2022 08:58

it works for me too as this is my goto installer

ScOOt3r

Wikinoob 11-07-2022 09:02

Does my script look ok then?

ScOOt3r 11-07-2022 09:04

yes it does if you want to add music to your installer

also this line
#define myextension "data.bin" ;; You can edit this to be whatever you want (your script) is fine but if there is more then one .bin file which is common then you need or can change it to

#define myextension ".bin" /* You can edit this to be whatever you want */ (and it will automatically read anything with a.bin extension great when you have selective stuff or optional stuff like language files etc.


ScOOt3r

Wikinoob 11-07-2022 09:09

Quote:

Originally Posted by ScOOt3r (Post 497556)
yes it does if you want to add music to your installer

also this line
#define myextension "data.bin" ;; You can edit this to be whatever you want (your script) is fine but if there is more then one .bin file which is common then you need or can change it to

#define myextension ".bin" /* You can edit this to be whatever you want */ (and it will automatically read anything with a.bin extension great when you have selective stuff or optional stuff like language files etc.


ScOOt3r

Its weird then, I must be doing something wrong as the MUSIC.MP3 is in the "Script" folder but not playing once compiled and running installer?

ScOOt3r 11-07-2022 09:13

make a backup of your current script.iss and then re copy a clean script with no changes from the one from the site again and just edit the music only to see if it works.. dont change anything else.

from this:
//#define enablemusic /* Remove ; to enable music support */

to this
#define enablemusic /* Remove ; to enable music support */

Wikinoob 11-07-2022 09:16

Quote:

Originally Posted by ScOOt3r (Post 497558)
make a backup of your current script.iss and then re copy a clean script with no changes from the one from the site again and just edit the music only to see if it works.. dont change anything else.

from this:
//#define enablemusic /* Remove ; to enable music support */

to this
#define enablemusic /* Remove ; to enable music support */

Still no music playing??? Very strange

Wikinoob 11-07-2022 09:17

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}


All times are GMT -7. The time now is 10:35.

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