Home
News
Community
Products
Download
Support
Sales
About CASL

 
 
 
 
 
 

Advanced CASL Installers


Tutorial Description

The purpose of this tutorial is to demonstrate how InnoSetup can be used to enhance and customize CASL 4.3 application installers.  Perhaps the ideal use for InnoSetup is to create advanced PocketPC installers which provide one-way Transfers of CASL databases from the installer to the PDA.

Prerequisites

  • You will first need to have the latest version of CASL (i.e. CASL 4.3) installed.  If you are unsure of how to do this, please see the Download page.
  • Some understanding of Installers and InnoSetup will be useful.
  • To use the script below, you will want to download and install the InnoSetup "Quick Start" Pak.  This freeware package will allow more advanced InnoSetup scripting and is needed to compile the InnoSetup script below.

InnoSetup Script

The following is an example InnoSetup script that may be copied into the "ISTool" application.

Steps

  1. If you haven't already done so, install CASL 4.3 from our download page.
  2. Create your product in a location such as: 'C:\YOUR_COMPANY\YOUR_PRODUCT_NAME' and compile and build your PocketPC installer using the menu option within the CASLide of 'Build/Build Application Installer'. Make sure the 'Create CAB files' option is checked on the Build tab.
  3. If you haven't done so already, download and install InnoSetup from here. My recommendation is to download the 'Quick Start Pak' which includes an InnoSetup front-end called 'ISTool'. In the code example above, it must be copied/pasted within 'ISTool' to compile properly. The reason for this is that the author of this tutorial prefers to use the "#define" function available in the ISTool to globally define paths, common names, etc.
  4. Start 'ISTool' and copy/paste the code section below into the tool.
  5.  

    ; ************************************************
    ; ** YOUR_PRODUCT_NAME WINDOWS MOBILE / POCKET PC
    ; ************************************************
    ; Installer Script Version: 1.0
    ;
    ; Script Started: 5/25/2017
    ; Last Updated: 5/25/2017
    ; Author: CASLSoft
    ;
    ; Purpose:
    ; Builds product for Windows Mobile / Pocket PC
    ;
    ; (c)2017 by WAGWARE Systems, Inc. & Brainyware, LLC
    ;
    ; DATE          VERSION      AUTHOR  DESCRIPTION
    ; ------        ---------    ------- -----------
    ; 5/25/2017      1.0         jew     Initial release

    ; **********************************
    ; ** INSTALLATION PROJECT VARIABLES
    ; **********************************
    ; Define Global Variables to be used within the Installer.  Substitute the values in BOLD with
    ; values used by your app. (Including CASL with your apps. CREATOR ID)
    #define CASLRoot 'C:\Program Files\CASLsoft\CASL43';
    #define AppRoot 'C:\YOUR_COMPANY\YOUR_PRODUCT_NAME';
    #define   AppCreatorID 'CREATOR_ID';
    #define AppName 'YOUR_PRODUCT_NAME';
    #define AppInstall=AppName+'_PocketPC_Install';

    [Setup]
    AppName=YOUR_PRODUCT_NAME
    AppVerName=YOURAPP (for PocketPC)
    AppPublisher=YOUR_COMPANY
    AppPublisherURL=http://www.YOUR_COMPANY.com
    AppSupportURL=http://www.YOUR_COMPANY.com/support.htm
    AppUpdatesURL=http://www.YOUR_COMPANY.com/YOUR_PRODUCT_NAME.htm
    DefaultDirName={pf}\YOUR_PRODUCT_NAME
    DefaultGroupName=YOUR_PRODUCT_NAME (for PocketPC)
    ;LicenseFile=license.txt
    OutputBaseFilename=YOUR_PRODUCT_NAME_PPC
    Uninstallable=yes
    UninstallFilesDir={app}\uninst
    ChangesAssociations=yes

    [Files]
    ; NEEDED ONLY IF .CDI/.CDB Files need to be transferred to to PocketPC
    ; The following files are needed for the CASL Transfer Utilties (CASLcdi2ppc / CASLppc2cbd)
    Source: {#CASLRoot}\PocketPC\CASLcdi2ppc.exe; DestDir: {app}; Flags: ignoreversion
    Source: {#CASLRoot}\PocketPC\CASLppc2cdb.exe; DestDir: {app}; Flags: ignoreversion
    Source: {#CASLRoot}\PocketPC\CEAPPMGR.EXE; DestDir: {app}; Flags: ignoreversion
    Source: {#CASLRoot}\PocketPC\CASLregARM.exe; DestDir: {app}; Flags: promptifolder
    Source: {#CASLRoot}\PocketPC\CASLregMIPS.exe; DestDir: {app}; Flags: promptifolder
    Source: {#CASLRoot}\PocketPC\CASLregSH3.exe; DestDir: {app}; Flags: promptifolder

    Source: c:\windows\system32\SregoCETPx.ocx; DestDir: {sys}; Flags: regserver ignoreversion noregerror uninsneveruninstall

    ; COMMON TO ALL CASL PRODUCTS
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.ini; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.PPC3_ARM.CAB; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.PPC3_ARM.DAT; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.PPC3_MIPS.CAB; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.PPC3_MIPS.DAT; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.PPC3_SH3.CAB; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\{#AppName}.PPC3_SH3.DAT; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\InstallScript.ini; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\{#AppInstall}\Setup.exe; DestDir: {app}; Flags: ignoreversion

    ; YOUR_PRODUCT_NAME-SPECIFIC FILES
    Source: {#AppRoot}\{#AppInstall}\README.TXT; DestDir: {app}; Flags: ignoreversion
    Source: {#AppRoot}\YOUR_PRODUCTS_DATABASE.cdi; DestDir: {app}; Flags: ignoreversion

    [Registry]
    ; No Registry Modifications needed

    [Icons]
    ; CREATE ICONS (Custom for each App.)
    Name: {group}\YOUR_PRODUCT_NAME on the Web; Filename: http://www.YOUR_COMPANY.com/YOUR_PRODUCT_NAME.htm

    ; CREATE ICONS (Common for All Apps)
    Name: {group}\Uninstall\Uninstall {#AppName} from the PocketPC; Filename: {app}\CEAPPMGR.EXE
    Name: {group}\Uninstall\Uninstall {#AppName} from the Desktop; Filename: {app}\uninst\unins000.exe; Comment: Uninstall

    [Run]
    ; RUN CASL INSTALLER
    Filename: {app}\Setup.exe; Parameters: ; Description: Run CASL Installer
    ; RUN CDI2PPC to Transfer any CASL Databases to the PocketPC
    Filename: {app}\CASLcdi2ppc.exe; Parameters: "-CreatorID {#AppCreatorID} -DBFile ""{app}\*.cdi"""; Flags: nowait

    [Messages]
    BeveledLabel=YOUR_COMPANY
     

     

  6. Next, do a search/replace for "YOUR_COMPANY" and replace it with your company name. Do the same for : YOUR_PRODUCTS_DATABASE, YOUR_PRODUCT_NAME, CREATOR_ID and YOUR_PRODUCT_NAME_PPC.
  7. The resulting script should be pretty close to your final script. You may want to add some custom application icons, bitmap images within your InnoSetup script, etc. However, for the most part this should get you up and running rather quickly.
     

Home | News | Community | Products | Download | Support | Sales | About CASL

© 1997-2018 WAGWARE Systems, Inc. & Brainyware, LLC.

All Rights Reserved. Legal info

Last Modified 01/02/2018