How to create pre-install another software using InnoScript

Started by bibin98, June 08, 2012, 06:40:11 PM

Previous topic - Next topic

bibin98

OK thanks for the info, I never try to download from downloads menu before

Randem

OK, Great. Did you realize you could downloads the files from the Downloads menu in InnoScript?

bibin98

OK thx, all runs well... I rename first the file that I've downloaded become dotnetfx40.exe cause the script asked that file

Randem

It follows the same procedure as every other file that you use... After you download it, put is some place that InnoScript can find it...

bibin98

; InnoScript Version 11.1  Build 19
; Randem Systems, Inc.
; Copyright (c) 2002 - 2011, Randem Systems, Inc.
; Website:  https://randemsystems.com
; Support:  https://randemsystems.support
; OS: Windows XP 5.1 build 2600 (Service Pack 2)
 
; Derived from VB VBP Project File
 
; Designed for Inno Setup Version: 5.5.0 (a)
; Installed Inno Setup Version: 5.5.0 (a)
 
; Date: June 15, 2012
 
; Local Machine Settings. Use these settings as a template for your installation folders
 
; {app}           : C:\Program Files\Randem Systems\InnoScript
; {appdata}       : C:\Documents and Settings\Andrianto L. Widodo\Application Data\Randem Systems\InnoScript\
; {localappdata}  : C:\Documents and Settings\Andrianto L. Widodo\Local Settings\Application Data\Randem Systems\InnoScript\
; {cf}            : C:\Program Files\Common Files\Randem Systems
; {tmp}           : C:\Documents and Settings\Andrianto L. Widodo\Local Settings\Temp\
; {commonappdata} : C:\Documents and Settings\All Users.WINDOWS\Application Data\Randem Systems\InnoScript\Release\
; {pf}            : C:\Program Files\
 
;              VB Runtime Files Folder:   C:\Program Files\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\
;     Visual Basic Project File (.vbp):   D:\Project VB\SegerAgro\PrSegerAgroNusantara.vbp
; Inno Setup Script Output File (.iss):   D:\Project VB\SegerAgro\Scripts\PrSegerAgroNusantara 1.0.0.iss
;:   D:\Project VB\SegerAgro\Scripts\Templates\SegerAgro.tpl
;:   C:\Documents and Settings\Andrianto L. Widodo\Local Settings\Application Data\Randem Systems\InnoScript\Release\Templates\AutoOSUpdater.tpl
;:   C:\Documents and Settings\Andrianto L. Widodo\Local Settings\Application Data\Randem Systems\InnoScript\Release\Templates\VCRuntime.tpl
;:   C:\Documents and Settings\Andrianto L. Widodo\Local Settings\Application Data\Randem Systems\InnoScript\Release\Templates\Crystal Reports.tpl
;:   C:\Documents and Settings\Andrianto L. Widodo\Local Settings\Application Data\Randem Systems\InnoScript\Release\Templates\dotNETInstall.tpl
 
; ------------------------
;        References
; ------------------------
 
; OLE Automation - (stdole2.tlb)
; Microsoft ActiveX Data Objects 2.7 Library - (msado27.tlb)
; Crystal Reports ActiveX Designer Design and Runtime Library 11.5 - (craxddrt.dll)
; Crystal Reports ActiveX Designer Library 11.5 - (craxdui.dll)
; Microsoft Data Binding Collection VB 6.0 (SP4) - (MSBIND.DLL)
 
 
; --------------------------
;        Components
; --------------------------
 
; Data Dynamics ActiveBar 2.0 - (Actbar2.ocx)
; ActiveSplash 1.0 Type Library - (actsplash.ocx)
; Crystal ActiveX Report Viewer Library 11.5 - (CRViewer.dll)
; ComponentOne True DBDate 8.0 - (tidate8.ocx)
; ComponentOne True DBNumber 8.0 - (tinumb8.ocx)
; ComponentOne True DBMask 8.0 - (timask8.ocx)
; FindButton by Bibin - (FindButton.ocx)
; Microsoft Common Dialog Control 6.0 (SP6) - (comdlg32.ocx)
; Microsoft Windows Common Controls 6.0 (SP6) - (MSCOMCTL.OCX)
; ComponentOne True DBGrid Pro 8.0 (OLEDB) - (todg8.ocx)
; ComponentOne True DBList Pro 8.0 (OLEDB) - (todl8.ocx)
 
 
[Setup]
SetupLogging=Yes
AppId=SIB 1.0
 
;------------------------------------------------------------------------------------------------------------------------
; Taken from VBP/VBG Project File Parameters AppName, AppName AppVersion and Company
;------------------------------------------------------------------------------------------------------------------------
 
AppName=SIB 1.0 1.0.0
AppVerName=SIB 1.0
AppPublisher=PT. Seger Agro Nusantara
 
;------------------------------------------------------------------------------------------------------------------------
 
AppVersion=1.0.0
VersionInfoVersion=1.0.0
AllowNoIcons=yes
DefaultGroupName=SIB 1.0\  
DefaultDirName={pf}\SIB 1.0  
AppCopyright=2012
PrivilegesRequired=None
MinVersion=0,5.01
OnlyBelowVersion=0,7.0
Compression=lzma
OutputBaseFilename=SIB0100000
 
[Tasks]
Name: Desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: AutoOSUpdater; Description: Install Database Support Updater; GroupDescription: Database Support:
Name: VCRuntime2008; Description: Install VC   2008 Runtimes SP1; GroupDescription: VC Runtimes:
Name: DotNetFramework40; Description: Install .Net Framework 40; GroupDescription: .Net Framework:; Check: InstallDotNET40(0)
Name: ScriptingRuntime; Description: Install Microsoft's Scripting Runtime; GroupDescription: Install Scripting Runtime:
Name: CRInstallation; Description: Install Crystal Reports Runtime Files; GroupDescription: Install CR Runtime Files:
Name: mySQLInstaller; Description: Install mySQL 5.5; GroupDescription: Additional Installations:; Flags: unchecked  
 
[Files]
Source: D:\Project VB\SegerAgro\Scripts\VB_VC_DCOM_MDAC_JET_AutoSetup.exe; DestDir: {tmp}; Flags:  deleteafterinstall ignoreversion nocompression; AfterInstall: InstallAutoOSUpdater('{tmp}\VB_VC_DCOM_MDAC_JET_AutoSetup.exe','/NORESTART /VERYSILENT'); Tasks: AutoOSUpdater;
Source: dotnetfx40.exe; DestDir: {tmp}; Flags:  deleteafterinstall ignoreversion nocompression; AfterInstall: InstalldotNETFramework('{tmp}\dotnetfx40.exe','/passive /norestart /log {sd}\dotNET40Log.txt'); Tasks: DotNetFramework40;
Source: D:\Project VB\SegerAgro\Scripts\vcredist_x86_2008_SP1.exe; DestDir: {tmp}; Flags:  deleteafterinstall ignoreversion nocompression; AfterInstall: InstallVCRuntime('{tmp}\vcredist_x86_2008_SP1.exe','/q /l{sd}\vcredist_x86_2008_SP1.exe.txt'); Tasks: VCRuntime2008;
Source: D:\Project VB\SegerAgro\Report\*.*; DestDir: {app}\Report\; Flags:  
Source: C:\Program Files\Randem Systems\InnoScript\InnoScript 11\VB 5 Redist Files\stdole2.tlb; DestDir: {sys}; Flags:  regtypelib restartreplace uninsneveruninstall;  
Source: C:\Program Files\Common Files\Data Dynamics\ActiveBar2\Actbar2.ocx; DestDir: {cf}\Data Dynamics\ActiveBar2\; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\actsplash.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\tidate8.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\CRXI_5_RDC_Redistribution.msi; DestDir: {tmp}; Flags:  deleteafterinstall ignoreversion nocompression; Tasks: CRInstallation
Source: D:\Project VB\SegerAgro\Scripts\tinumb8.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\timask8.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\FindButton.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\comdlg32.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\MSCOMCTL.OCX; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\todg8.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\Scripts\todl8.ocx; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
Source: D:\Project VB\SegerAgro\SIB.exe; DestDir: {app}; Flags:  ignoreversion restartreplace;  
Source: D:\Project VB\SegerAgro\Scripts\scripten.exe; DestDir: {tmp}; Flags:  deleteafterinstall ignoreversion nocompression; MinVersion: 0,5.0; OnlyBelowVersion: 0,5.02; Tasks: ScriptingRuntime
Source: D:\Project VB\SegerAgro\toolbar.tb2; DestDir: {app}; Flags:  ignoreversion;  
Source: D:\Project VB\SegerAgro\Background.jpg; DestDir: {app}; Flags:  ignoreversion;  
Source: D:\Project VB\SegerAgro\Config.lic; DestDir: {app}; Flags:  ignoreversion;  
Source: D:\Project VB\SegerAgro\sgr.spl; DestDir: {app}; Flags:  ignoreversion;  
Source: C:\Program Files\Randem Systems\InnoScript\InnoScript 11\VB 5 Redist Files\OLEAUT32.dll; DestDir: {sys}; Flags:  restartreplace sharedfile;  
Source: C:\Program Files\Randem Systems\InnoScript\InnoScript 11\VB 5 Redist Files\OLEPRO32.DLL; DestDir: {sys}; Flags:  regserver restartreplace sharedfile;  
 
[INI]
 
[Icons]
Name: {group}\PrSegerAgroNusantara ; Filename : {app}\SIB.exe; WorkingDir: {app};
Name: {group}{cm:UninstallProgram, PrSegerAgroNusantara }; Filename: {uninstallexe};
Name: {commondesktop}\PrSegerAgroNusantara ; Filename: {app}\SIB.exe; Tasks: Desktopicon ; WorkingDir: {app};
 
[Run]
Filename: {tmp}\scripten.exe; Parameters: /quiet /passive; MinVersion: 0,5.0; OnlyBelowVersion: 0,5.02; WorkingDir: {tmp}; Flags: skipifdoesntexist runascurrentuser; Tasks: ScriptingRuntime; StatusMsg: Installing Scripting Runtime;
Filename: msiexec.exe; Parameters: /package CRXI_5_RDC_Redistribution.msi /passive /promptrestart /l* {sd}\CRXI_5_RDC_Redistribution.msi.txt; WorkingDir: {tmp}; Flags: skipifdoesntexist runascurrentuser; Tasks: CRInstallation; StatusMsg: Installing Crystal Reports Runtimes;
; Register the Crystal Reports Merge Module components that need to be registered in place where the Merge Modules installed them
Filename: regsvr32.exe; Parameters: /s {code:GetCLSIDFldr|!F62B9FA4-455F-4FE3-8A2D-205E4F0BCAFB@\11.5.9.1265}{code:LogFileName|crviewer.dll}; WorkingDir: {code:GetCLSIDFldr|!F62B9FA4-455F-4FE3-8A2D-205E4F0BCAFB@\11.5.9.1265}\; StatusMsg: Registering Crystal ActiveX Report Viewer Library 11.5; Tasks: CRInstallation; Flags: runascurrentuser
Filename: regsvr32.exe; Parameters: /s {code:GetCLSIDFldr|!4FB2D832-C996-4EB1-BE0D-4DE953CF25F0@\11.5.9.1265}{code:LogFileName|craxddrt.dll}; WorkingDir: {code:GetCLSIDFldr|!4FB2D832-C996-4EB1-BE0D-4DE953CF25F0@\11.5.9.1265}\; StatusMsg: Registering Crystal Reports ActiveX Designer Design and Runtime Library 11.5; Tasks: CRInstallation; Flags: runascurrentuser
Filename: regsvr32.exe; Parameters: /s {code:GetCLSIDFldr|!BD4B4E53-F7B8-11D0-964D-00A0C9273C2A@\11.5.0.313}{code:LogFileName|craxdui.dll}; WorkingDir: {code:GetCLSIDFldr|!BD4B4E53-F7B8-11D0-964D-00A0C9273C2A@\11.5.0.313}\; StatusMsg: Registering Crystal Reports ActiveX Designer Library 11.5; Tasks: CRInstallation; Flags: runascurrentuser
Filename: {src}\Support\mysql-5.5.24-win32.msi; Parameters: ; Flags: skipifdoesntexist; Tasks: mySQLInstaller; WorkingDir: {tmp}
Filename: {app}\SIB.exe; Description: {cm:LaunchProgram, PrSegerAgroNusantara }; Flags: nowait postinstall skipifsilent runascurrentuser; WorkingDir: {app}
 
[UninstallDelete]
Type: dirifempty; Name: {app}
 
 
[InstallDelete]
Type: files; Name: {app}\Install.log;
 
[Code]
//=============================================================
// Install the Automatic OS Updater
//=============================================================
Procedure InstallAutoOSUpdater(Filename: String; Param: String);
var
  ErrorCode: Integer;
  begin
     ShellExec('', ExpandConstant(Filename), ExpandConstant(Param), '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
  end;
//===================================================================
// Install VC   Runtime files
//===================================================================
Procedure InstallVCRuntime(Filename: String; Param: String);
var
  ErrorCode: Integer;
  begin
     ShellExec('', ExpandConstant(Filename), ExpandConstant(Param), '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
  end;
//================================================================================================================
// This section of  code will check for the existance of a .NET installation and service pack associated with it.  
//================================================================================================================
//===================================================================
// Get the Service Pack of the .NET installation
//===================================================================
 function GetDotNETSP(dotNETVersion: string): cardinal;
var
    success: boolean;
    install: cardinal;
    regloc: String;
begin
    regloc :=  'SOFTWARE\Microsoft\NET Framework Setup\NDP\'   dotNETVersion;
    success := RegQueryDWordValue(HKLM, regloc, 'SP', install);
    Result := install;
end;
//=========================================================================================================
// Indicates whether .NET Framework 1.1 is installed with the service pack that was queried for
//=========================================================================================================
function IsDotNET11Detected(SP: cardinal): boolean;
var
    success: boolean;
    install: cardinal;
    SPNum: cardinal;
begin
    success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'Install', install);
    // Check to see if the given Service Pack is installed
    SPNum := GetDotNETSP('v1.1.4322')
      Result := success and (install = 1) and (SPNum = SP);
end;
//===================================================================
//RETURNS OPPOSITE OF IsDotNet11Detected FUNCTION
//===================================================================
function InstallDotNET11(SP: integer): Boolean;
begin
  Result := not IsDotNET11Detected(SP);
end;
//=====================================================================================================
// Indicates whether .NET Framework 2.0 is installed with the service pack that was queried for
//=====================================================================================================
function IsDotNET20Detected(SP: cardinal): boolean;
var
    success: boolean;
    install: cardinal;
    SPNum: cardinal;
begin
    success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'Install', install);
    // Check to see if the given Service Pack is installed
    SPNum := GetDotNETSP('v2.0.50727')
      Result := success and (install = 1) and (SPNum = SP);
end;
//===================================================================
//RETURNS OPPOSITE OF IsDotNet20Detected FUNCTION
//===================================================================
function InstallDotNET20(SP: integer): Boolean;
begin
  Result := not IsDotNET20Detected(SP);
end;
//=========================================================================================================
// Indicates whether .NET Framework 3.0 is installed with the service pack that was queried for
//=========================================================================================================
function IsDotNET30Detected(SP: cardinal): boolean;
var
    success: boolean;
    install: cardinal;
    SPNum: cardinal;
begin
    success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0', 'Install', install);
    // Check to see if the given Service Pack is installed
    SPNum := GetDotNETSP('v3.0')
      Result := success and (install = 1) and (SPNum = SP);
end;
//===================================================================
//RETURNS OPPOSITE OF IsDotNet30Detected FUNCTION
//===================================================================
function InstallDotNET30(SP: integer): Boolean;
begin
  Result := not IsDotNET30Detected(SP);
end;
//===================================================================================================
// Indicates whether .NET Framework 3.0 is installed with the service pack that was queried for
//===================================================================================================
function IsDotNET35Detected(SP: cardinal): boolean;
var
    success: boolean;
    install: cardinal;
    SPNum: cardinal;
begin
    success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', install);
    // Check to see if the given Service Pack is installed
    SPNum := GetDotNETSP('v3.5')
      Result := success and (install = 1) and (SPNum = SP);
end;
//===================================================================
//RETURNS OPPOSITE OF IsDotNet35Detected FUNCTION
//===================================================================
function InstallDotNET35(SP: integer): Boolean;
begin
  Result := not IsDotNET35Detected(SP);
end;
//==================================================================================================
// Indicates whether .NET Framework 3.0 is installed with the service pack that was queried for
//==================================================================================================
function IsDotNET40Detected(SP: cardinal): boolean;
var
    success: boolean;
    install: cardinal;
    SPNum: cardinal;
begin
    success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'Install', install);
    // Check to see if the given Service Pack is installed
    SPNum := GetDotNETSP('v4')
      Result := success and (install = 1) and (SPNum = SP);
end;
//===================================================================
//RETURNS OPPOSITE OF IsDotNet40Detected FUNCTION
//===================================================================
function InstallDotNET40(SP: integer): Boolean;
begin
  Result := not IsDotNET40Detected(SP);
end;
//===================================================================
// Install .NET Framework
//===================================================================
Procedure InstalldotNETFramework(Filename: String; Param: String);
var
  ErrorCode: Integer;
  begin
     ShellExec('', ExpandConstant(Filename), ExpandConstant(Param), '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
  end;
 
//========================================================================================================================
// Get the CLSID from the registry for the queried file to locate where this file was installed by the CR merge module
// We do this so that we know where to register the file after installation.
//========================================================================================================================
 
function GetCLSIDFldr(Param: String): String;
var
  Location: String;
  CSLID: String;
  LogFile: String;
  sStr: String;
begin
  CSLID := Param;
  StringChangeEx(CSLID, '!', '{', True);
  StringChangeEx(CSLID, '@', '}', True);
 
  LogFile := ExpandConstant('{app}')   '\Install.log';
  SaveStringToFile(LogFile, #13#10   CSLID   #13#10, True);
 
  if not RegQueryStringValue(HKEY_CLASSES_ROOT, 'TypeLib\'   CSLID   '\0\win32','', Location) then
     Result := 'Not Registered !!!'   #13#10   'Possible Wrong Crystal Reports Version Installed on Source Machine or '   #13#10   'Wrong CRystal Reports Merge Module Installed on Target Machine'   #13#10;
     
  begin
    Location := ExpandConstant(Location)
    sStr := #13#10   Location   #13#10   StringOfChar('*',70)   #13#10
    SaveStringToFile(LogFile, sStr, True);
    Result := ExtractFileDir(Location);
  end;
end;
 
//=============================================================
// Log the filename process to a log file  
//=============================================================
 
function LogFileName(Filename: String): String;
var
  LogFile: String;
  sSTr: String;
begin
  LogFile := ExpandConstant('{app}')   '\Install.log';
  sStr := #13#10   'Registering '   Filename   #13#10;
  SaveStringToFile(LogFile, sStr, True);
  Result := Filename;
end;
 
//============================================================================


bibin98

I have update the new version. In which folder can I put the dotnet4 installer?


Randem

Replace your InnoScript.exe with this one then run it. Post the error that you get.
 
 
 


Randem

Please zip and post your .pjt file for this project. I cannot get the error to happen.

Randem

Just because you add an external install doe not mean that you need a task and in most cases you would not. Secondly you could be adding this install to an existing task.
 
I will check on the DOT4 error

bibin98

If I may suggest, when user added some External Installs, the checkbox Task Needed should automatically checked, or it have another case that it should be checked manually?
 
I have close and open InnoScript again but still have that error message with adding dotNET 4.0

Randem

Task Needed:   This entry needs a task created
 
Task Selected: This entries task will be automatically selected to be used
 
Exclusive: If you do task grouping you need to select this one. It turns only one task in the group on and the others off.
 
I will look into this error. Did you exit then restart InnoScript to see if it has any effect?

bibin98

OK thanks.... What is the difference between Task Needed, Task Selected and Exclusive.
 
BTW, mySQL 5.5.24 need .NET Framework 4 to be installed, so I include .NET 4.0 but I have this error