ALP ALP Install - configuration
ALPInstall.exe uses two types of configuration files - setup and uninstall. Uninstall files are generated automatically during the installation and it is not recommended to edit them. To understand setup files it will be better to read first ALP Configuration files syntax.

Setup files

Below one setup file with sample entries is shown. It shows structure and possible entries but note that this is not an actual installation file! For base examples see the "deployment samples" on our site. All the samples there can be used as base of your actual installation. By changing and adding entries in them you can configure complete setup solution for your application. Note that the sample files do not contain all the possible text entries because the installer has default values (English) defined internally. If you want to localize your setup package check the entries description on this page (in the TEXT section and the sections related to user interface dialogs) and add them to your setup.cfg file. To read details about certain section and its entries click the link (leads to a bookmark in this page) to see the details.

; Define source and the destionation directories
{ PATHS:
	{ SOURCE:
                  ; Defines aliases for the source paths. Although one setup can be configured
                  ; not using aliases it is hepful to define some in order to separate the
                  ; parts of the application
		(string)ACTIVEX=CommonFiles\UtilityActiveX
		(string)CGS=CommonFiles\ContentGenerators
	} SOURCE;
	{ DESTINATION:
                  ; Defines aliases for the destination directories where files will be copied
                  ; They are used furhter in the entries where destionation is to be specified
		(string)BASEDEST=%PROGRAMFILES%\newObjects\ALP
		(string)ACXDEST=%COMMONFILES%\newObjects\ActiveX
		(string)CGSDEST=%COMMONFILES%\newObjects\Content Generators
                  ; See the remarks about ALPInstBase.InstallCG for the following
                  ; sample entry.
                  (string)ALPDEST=%PROGRAMFILES%\newObjects\ALP
	} DESTINATION;
	{ ASKDESTINATION:
             ; Defines user interface dialogs allowing the user to select the destionation path
             ; Each section name must be an alias name defined in the DESTINATION section.

             ; Name of the section points an alias defined in the DSTINATION section for which the user
             ; will be asked 
	    { BASEDEST:
                 ; The dialog caption text
	        (string)Caption=Application destination
                 ; The text displayed in the dialog
	        (string)Label=Select the destination path for the application files:
	    } BASEDEST;
	} ASKDESTINATION;
	{ LEAVEONUNINSTALL:
		; If you want to prevent explicitly uninstallation of certain directories listed
		; in the DESTINATION sections you can list them here:
		(int)ALPDEST=1
	} LEAVEONUNINSTALL:
} PATHS;

; Define what will be installed
{ FILES:
         ; Contains various types of sections which define specific file/component/directory
         ; installation. 

	; Install SDA (UDS) text configruation file. If the file should be installed with
         ; entries checking this class must be used. This guarantees that the setup will not
         ; replace the file if it already exists but will merge the entries.
	{ alp.application: (ALPInstBase.InstallConfig)
		(string)source=
		(string)destination=%BASEDEST%
		(int)CommonShared=0
	} alp.application;

	; Install non-COM Content Generator module for ALP
	; and update its gloabal configuration
	{ CGStandard.dll: (ALPInstBase.InstallCG)
		(string)source=%CGS%
		(string)destination=%CGSDEST%
                  (string)ALPRoot=%ALPDEST%
		(int)CommonShared=1
		(string)InternalModuleName=STANDARD
                  ; This subsection defines entries to be added/updated into the global
                  ; alp.application file. 
		{ APPLICATION:
                     { ExecutionMap:
                        { exe: (CG.newObjects.GateCGI)
                            (int)Timeout=60
                            (int)RequireAsynch=2
                            (int)CheckThatFileExists=1
		      } exe;
                     } ExecutionMap;
                     { InternalExecutionMap:
                        { Directory: (CG.newObjects.DirList)
                            (string).ListTemplate=ListTemplate.htm
                            (int)RequireAsynch=1
                        } Directory;
                     } InternalExecutionMap;
		} APPLICATION;
	} CGStandard.dll;

         ; Install COM Content Generator module for ALP
         { alpaspcontext.dll: (ALPInstBase.InstallCG)
		(string)source=%ALPCGS%
		(string)destination=%ALPCGSDEST%
		(string)ALPRoot=%ALPDEST%
		(int)COMRegister=1
		(int)CommonShared=1
		(string)InternalModuleName=ASP
		{ APPLICATION:
                     ; content is skipped for brevity
		} APPLICATION;
	} alpaspcontext.dll;

	; Install COM DLL (any COM DLL)
	{ scphost.dll: (ALPInstBase.InstallTarget)
		(string)source=%ACTIVEX%
		(string)destination=%ACXDEST%
		(int)COMRegister=1
		(int)CommonShared=1
		(int)DONTUninstall=1
		(string)ClassGUID={6CEAA772-C22C-11D4-9979-0040332BA2EA}
	} scphost.dll;

	; Install a directory with all the content in it (the diectory tree)
	{ Samples: (ALPInstBase.InstallSubdir)
		(string)source=
		(string)destination=%BASEDEST%
		; Optional entries - put them only if needed
		(int)LogEachFile=1
		(int)UseFileVersion=1
		(int)UseFileTime=1
		(string)RemoveOld=... file full path name composed with DESTINATION aliases ...
	} Samples;

	; Install simple file
	{ ListTemplate.htm: (ALPInstBase.InstallTarget)
		(string)source=%ALPCGS%
		(string)destination=%ALPCGSDEST%
		; Optional entries
		(int)CommonShared=0
		(int)UseFileTime=1
		(string)RemoveOld=... file full path name composed with DESTINATION aliases ...
		(int)DONTUninstall=1
	} ListTemplate.htm;

         { REGISTRY: (ALPInstBase.InstallRegistry)
	    { INSTALL:
	        (int)MapPaths=1
    	        { HKCU\Software\Sample ALP Application:
    	          { Key1:
                     (string)StringValue=A string
    	            { SubKey:
    	                (string)StringValue=A string %BASEDEST%
    	                (int)NumericValue=123
    	            } SubKey;
    	          } Key1;
    	          ; This will not be removed on uninstall (see below)
    	          { Key2:
    	            (string)StringValue=Another string %ALPCGS%
    	          } Key2;
    	        } HKCU\Software\Sample ALP Application;
    	    } INSTALL;
    	    { UNINSTALL:
    	        ; Key to be deleted. In this sample Key2 is not uninstalled.
    	        { HKCU\Software\Sample ALP Application\Key1:
    	        } HKCU\Software\Sample ALP Application\Key1;
             } UNINSTALL;
	} REGISTRY;
} FILES;

; Create start menu and desktop shortcuts
{ LINKS:
	; URL link
	{ DefaultSampleSite:
		(string)location=%START_PROGRAMS%\newObjects\ALP
		(string)location=%DESKTOP%
		(string)Name=ALP Samples Home.url
		(int)InternetLink=1
		(string)Link=alp://%BASEDEST%\Samples
                  ; New ALPInstall version 1.2.2.0
                  (string)IconFile=%BASEDEST%\App\app.ico
                  (string)Description=Shortcut description
	} DefaultSampleSite;
	; File link (local FS link)
	{ SomeProgram:
		(string)location=%START_PROGRAMS%\newObjects\ALP
		(string)location=%DESKTOP%
		(string)Name=Some exe.lnk
		(int)InternetLink=0
		(string)Link=%BASEDEST%\somedir\someprogram.exe
		; New - ALPInstall version 1.0.0.2
		(string)Parameters=/somekey /someotherkey
		(string)Description=Shortcut description
                  ; New ALPInstall version 1.2.2.0
                  (string)IconFile=%BASEDEST%\App\app.ico
                  (string)WorkPath=%BASEDEST%\App
	} SomeProgram;

} LINKS;

; General settings and UI texts
{ MAIN:
    ; General settings. See their detailed description.
    
    ; Base directory of the application where the uninstall information and the install log
    ; will be created.
    (string)BasicAppLocation=BASEDEST
    ; Install log file name preffix - if you have more than one applicaitons in the same
    ; directory pay attention to choose unique name.
    (string)LogFilenamePrefix=ALPCore
    ; Signature name for the application installed. Helps the setup to recognize if it is already
    ; installed and perform global version checks or clean up (on uninstall)
    (string)SelfSignature=ALPCore
    ; Optional external setup program to be executed after finishing the installation
    (string)ExternalSetup=somesetup.exe
    (string)ExternalSetupParameters=/somekey /someotherkey
    ; Optional application or URL to be executed/opened after completing the setup
    (string)LaunchURL=alp://%BASEDEST%\Samples\asp
    (string)LaunchURLParameters=
    ; Space required for the installation
    (int)TotalSize=1486850
    ; Package version defines a global application version for internal use. Increment it if
    ; newer version is packaged.
    (int)PackageVersion=0
    ; Suppress the "Do you want to install ..." question in the beginning.
    (int)SuppressInitialQuestion=0
    ; Yes to all to all the file replace questions (recommended for office/corporate usage only)
    (int)SilentReplace=0
    ; Alternative startup - mostly for autoruns. If the CD contains application that can be 
    ; started instead of the setup this pops up a question dialog.
    (string)AlternativeStartup=alpframe.exe
    (string)AlternativeStartupParameters=
    ; Equivalent to the /o command line option. Setup checks if the application is already 
    ; installed and starts it if it is newer or the same instead of reinstalling it.
    (int)RunOnce=1
    (int)FixZoneInfo=1

    ; Optional section
    ; If exists it defines OS version requirements
    { OSVER:
       (int)AllowOnRisk=1
       { Any:
	  (int)RequiredVersionMajor=4
	  (int)RequiredVersionMinor=0
       } Any;
    } OSVER;

    ; The following section defines all the texts used in the installer UI.
    ; All are optional. If you want to not just adjust but also localize the 
    ; setup you will need to translate all the texts in your language
    ; See also the READMEDIALOGS and ASKDESTINATION sections.
    { TEXTS:
        ; The actual values of the folowing entries are omitet for brevity.
        (string)WelcomeTitle=newObjects ALP 1.0 Install
        (string)WelcomeQuestion=This program will install ...
        (string)FarewellTitle=Congratulations
        (string)FarewellText=Installation of newObjects ALP finished successfully!
        (string)UninstallTitle=newObjects ALP Uninstall
        (string)UninstallQuestion=This command will uninstall ...
        (string)UninstallEndTitle=Info
        (string)UninstallEndText=Uninstallation of newObjects ALP ...
        (string)InstallFailure=The installation has not finished successfully!
        (string)UninstallFailure=Uninstallation process failed!
        (string)Warning=Warning
        (string)Error=Error
        (string)TermWarn=...
        (string)CfgNotFound=...
        (string)NoSpace=... 
        (string)VerNotSupported=...
        (string)CantSaveUninst=...
        (string)Failed=...
        (string)CantCopySelf=...
        (string)LaunchError=...
        (string)RestartQuery=...
        (string)RestartFail=...
        (string)CreateDirError=...
        (string)InternalError=...
        (string)RightsError=...
        (string)LoadUninstallInfoError=...
        (string)InstallElementQuery=...
        (string)CopyFileError=...
        (string)RegisterError=... 
        (string)UninstElementQuery=...
        (string)UnregisterError=...
        (string)DeleteFileError=...
        (string)CGPresentQuery=...
        (string)AlreadyHere=...
        (string)ExternalLaunchError=...
        (string)RestartRequested=...
        (string)AlreadyRun=...
        (string)NotLocalPath=...
        (string)UserCanceled=...
        (string)CantOpenFile=...
        (string)NoBaseLocation=...
        (string)AlreadyHereOlder=...
        (string)AlreadyHereNewer=...
        (string)NoBasePath=...
        (string)InstallerCaption=...
        (string)Yes=Yes
        (string)No=No
        (string)YesToAll=Yes to All
        (string)NoToAll=No to All
        (string)PrepareInstall=Preparing to install files
        (string)InstallFiles=Installing files
        (string)RegisterComponents=Registering components
        (string)AllDone=All is done!
        (string)FinishInstall=Finishing install process
        (string)UninstallFiles=Uninstalling files
        (string)PleaseWait=Please wait...
        (string)OK=OK
        (string)UseDefault=Use default
        (string)Select=Select ...
        (string)SelectPathHint=...
    } TEXTS;

    { READMEDIALOGS:
	    { READMEBEFORE:
	        ; When to show it
	        ; 0 - before starting, 1 - after finishing
	        (int)When=0
	        
	        ; The file to show - relative path to the ALPInstall.exe.
	        ; Note that if you want to show this after completing the setup you will need to
	        ; configure this file to be copied. If you failed to do so in case of postponed install
	        ; (when a restart is required) the file will not be available.
	        (string)ShowFile=Readme.txt
	        
	        ; If set to 1 Cancel button is hidden and disabled and the user cannot cancel the setup at this step.
	        (int)NoCancel=0
	        
	        ; Caption of the window
	        (string)Caption=About Sample ALP Application (2)
	        
	        ; Text for the OK button
	        (string)OKButtonLabel=Proceed
	        
	        ; Text for the cancel button
	        (string)CancelButtonLabel=Exit
	    } READMEBEFORE;
     } READMEDIALOGS;
} MAIN;

{ UNINSTALL:
	(string)InfoFilename=ALPCoreUninst.cfg
	(string)RegSubkeyName=ALP
	(string)DisplayName=newObjects ALP Version 1.0
} UNINSTALL;
  • PATHS (^) Defines path constants/aliases that can be used in the other sections of this file where paths must be specified. When using a constant you must enclose it with % signs for example %PROGRAMFILES%.
    There are several predefined constants available by default without declaration: 
    PROGRAMFILES
    - pointing to the program files directory, 
    COMMONFILES
    - containing path to the common files (usually drive:\program files\common files),
    and from [ALPInstall version 1.1]
    TEMPDIR containing path to the system temp folder, 
    WINDIR
    - Windows directory,
    SYSDIR - system directory,
    STARTUP - startup (in the start menu),
    SENDTO - send to directory (for the current user only!),
    TEMPLATES - Templates directory,
    DESKTOP - desktop directory,
    STARTMENU - start menu directory,
    STARTMENUPROGRAMS - Programs submenu's directory,
    PERSONAL - Personal directory for the current user,
    FONTS - fonts directory,
    FAVORITES - Favorites directory for the current user
    All these constants contain full paths including the drive letter and can be used to define other constants in this section (see description below and sample above)
    • SOURCE section contains constants that can be used to construct source file paths in the FILES section. Paths defined here are relative to the start directory of the ALPInstall.
    • DESTINATION section contains constants defining the destination paths for the files. These constants can be used in the FILES section to specify destination locations for the files.
    • ASKDESTINATION [ALPInstall version 1.2.0.0] defines "ask" dialogs to be displayed to the user. They allow the user to select the target directory for the application (or some of its parts) installation. The section contains a subsection for any "ask for destination" dialog. The name of the section must match an alias defined in the DESTINATION section. The value given to the alias in the DESTINATION section plays a role of a default value. Note that the user will be asked for the destination only if clear setup is done, if an older version of the application is found, or it is re-installed the destination is already known (and recorded in the registry) and it will be used automatically.
    • LEAVEONUNINSTALL [ALPInstall version 1.2.4.0] You can list DESTINATION aliases here to make the setup do not uninstall them (i.e. do not delete the directories they describe) when the application is uninstalled. This means that even if the directory is empty it will remain. There is very low probability you will need this. It may be needed for example in case the directory existence is expected to be needed by another application. 
  • FILES (^) This section contains subsections that define how to install files, directories or registry entries including copy and registration operations.Install uses Jacked components attached to the sections. Section is processed by the component specified after its name - for example { myfile.ext (ALPInstBase.InstallTarget) means that the InstallTarget component will be used to process the section. Most components are using common settings for the parameters such as source and destination paths but every component has its specifics. The sample file above contains one section per component type and more where the component is intended to handle more situations. Here is the list of the installer components:
    • ALPInstBase.InstallTarget component supports miscelaneous files, COM self register DLLs and Jacked-Object DLL modules (but is not appropriate for an installation of content generator modules for ALP). It is capable of checking version info (Windows and Jacked-Objects) and automatically determines if the file must be replaced. It supports only one file and the file name is determined by the section name.
      • (string)source - source path containing the file with the name equal to the section name that will be installed. Here constants defined in the PATHS/SOURCE section can be used. Example: (string)source=%ACTIVEX% - ACTIVEX must be defined as a source path constant.
      • (string)destination - destination path for the file. File will be copied there if its version is newer than the destination file or if the destination file does not exist. Example: (string)destination=%ACXDEST%. Here constants from the PATHS/DESTINATION section can be used. Therefore in the example line we assume that ACXDEST is defined there.
      • (int)COMRegister - set to 1 if the file is COM DLL that is capable of selfregistering and set to 0 if not.
      • (int)CommonShared - If set to 1 means that the file usage counter is/must be maintained. This is important for the files that are not specific to a particular application only such as COM DLLs typically installed in the Common files directory. Install will increment and Uninstall will decrement the value in the registry and if it is not zero file will not be uninstalled with the application. The CommonShared feature can be used with any file - not only COM DLL. 
      • (int)DONTUninstall - This option is important for the ASP world because many DLLs are distributed without installation programs (in most cases installations will be times greater than the files being installed) and are manually registered by using regsvr32 utility. Thus by setting this option to 1 you will instruct Uninstall to not delete the file no matter if the of the usage counter  reaches 0 (see CommonShared option). It is important and recommended to leave a bit more code on the target machine after reinstallation than crash some other application. Thus if you know about a given DLL that it is distributed for manual installation you can expect that usage counter is not maintained correctly because of the possible manual installation and this option can be used to prevent problems.
      • (string)ClassGUID - This option is provided to allow the setup to find the DLL in the system. As like in the previous option it is possible that a given DLL is located somewhere in the system but we can not be sure that it has registration entries other than the required COM registration. Thus ClassGUID option allows you to specify the CLASSID of one of the contained classes in the DLL file and setup will search through the registry for the DLL physical location and perform version checking if it is found. Example: (string)ClassGUID={6CEAA772-C22C-11D4-9979-0040332BA2EA}
      • (int)JackedVersionInfo=0 - On the windows platforms this option is not so important because Jacked-Objects modules have version resources and there is no reason to check both versions, but if some file contains only Jacked classes with version info but no version resource you can set it to 1 in order to instruct setup to check and compare versions obtaining the JVersionInfo from the module's class library.
      • (int)UseFileTime=1 [ALPInstall version 1.2.4.0] - Active only if set to 1. The installer will use the last modification time to determine which file is newer. If also there is version info in the file (e.g. it is a DLL or EXE) this setting will have no effect.
      • (string)RemoveOld=<full file path name composed with DESTINATION aliases>.
        This optional entry allows you to clean up older versions of the file if the install location has been changed since the last issue of your application. For example you may have decided to combine the documentation of your applications in one file and you will want to delete any older help files that may be installed by older versions. No error is issued if the file is not found, you can repeat this entry more than once in the section in order to specify more than one file or possible locations. Use with care! You may have shortcuts pointing to the file specified. Typically you will need this if you have changed the structure of the installed application and you want to clean up unneeded files during update to new version.
    • ALPInstBase.InstallCG - This component is ALP related only. It is intended to perform installation of the content generators (native applications for ALP). Thus all modules such as ASP processor, CGI and other standard content generators are using it. It is capable of making changes in the alp.application global/default file. Also it registers the DLL specified by the name of the section in the alp.site file. Additionally it supports all the features available in the ALPInstBase.InstallTarget component because content generators are often COM servers too. The extended options defined by this component only are:
      • (string)InternalModuleName - name that will be used in the alp.site file to register the content generator DLL.
      • APPLICATION  subsection - may contain two possible subsections - ExecutionMap and InternalExecutionMap. These sections contain the settings that the content generator module needs in the global alp.application file - i.e. file extensions and other cases handled by the components contained in the DLL. For the content generators distributed with ALP it is better to copy this sections without change from the selected example package. 
      • (string)ALPRoot - [ALPInstall version 1.1] Defines the destination directory where the ALP global files reside. By default the ALP applications should install only one copy of the alp binaries (following the examples) and setup will need to know wehere they are. So the value used for this entry should aways be defined as %PROGRAMFILES%\newObjects\ALP. Of course an alias can be defined in the DESTINATION section and used here (most examples do).
    • ALPInstBase.InstallConfig - In ALP case this component is responsible for the installation of the global/default configuration files - alp.site, alp.application and alp.directory. In the most cases you will need to use the same sections that are available in the package downloaded from us. Configuration files are merged with the existing ones (if any) and entries are added/replaced - i.e. if an entry (section or record) exists in only one of the files it will exist in the resulting file and if a record entry exists in the both - the values from the file in the installation package will apply. The settings for the component are the same as for the InstallTraget component (see its description above) except that COM settings are not meaningful here and will be ignored if they exist. This component can be used for application specific purposes too, If your application uses text configuration file through ConfigFile component (see ActiveX pack1) you may need to install them with gurantee they will be updated and not replaced if they already exist on the system (for simplicity you can think for these files as for a private pieces of reistry).
    • ALPInstBase.InstallSubdir - This component will be the most useful one for those who want to use ALPInstall for their ALP applications. The component copies a subdirectory from the source location to the destination location with the entire contents of the directory. ALP sites are directory trees that you will often need to copy to the user's harddisk. The only possible settings here are (string)source and (string)destination with the same meaning as in the previous components, subfolder name is determined by the section name. Probably the subdirectory to be copied will be subfolder of the folder containing the ALPInstall.exe in the source package and in that cases you can omit the source option, but if it is a subfolder of some other folder - for example alpsites\site1 you will need to use entry like this one: (string)source=%alpsites% (we assume an alias alpsites is defined in the SOURCE section)
      • (int)UseFileTime=1 [ALPInstall version 1.2.4.0] - Active only if set to 1 or 2. The installer will use the last modification time to determine for each file in the copied directory which file is newer. If also there is version info in the file (e.g. it is a DLL or EXE) and the UseFileVersion is set this setting will have no effect. When set to 1 the user will be asked each time a file is to be replaced, if set to 2 the replace will be silent - the file will be replaced if it is older or has the same modification time as the new file. You should tend to use 2 in order to avoid confusing the users with too mush questions. Anyway in certain situations the file time cannot be trusted (for example if you exchange packages with coworker) and you may want to allow the user to confirm each replace.
      • (int)UseFileVersion=1 [ALPInstall version 1.2.4.0] - Active only if set to 1. Each file in the copied directory will be inspected for version information. If it contains such it will be used to determine which file is newer. If one of the both files does not contain it the last modification time will be used if also the UseFileTime option is enabled.
      • (int)LogEachFile=1 [ALPInstall version 1.2.4.0] - Active only if set to 1. If set each file will be logged. 
      • (string)RemoveOld - see InstallTarget above.
    • ALPInstBase.InstallRegistry - [ALPInstall version 1.1] Writes entries to the registry and lists which will be deleted on uninstall.
      • INSTALL - defines the oprations to be performed during the installation.
        • (int)MapPaths - If set to 1 the text registry entries will be pre-processed and any aliases used in them will be replaced with their actual content.
          For example if you have entry like this:
          (string)StringValue=A string %BASEDEST%
          %BASEDEST% will be replaced with the actual directory name determined by the setup.
        • <Full Key name and path> - The full registry name for the key which will be created. Any number of such subsections can be defined. The values and subsections of the key are defined as records and subsections - i.e. you have simple and convenient way to represent the registry that will be added. An example:
          { HKCU\Software\Sample ALP Application:
            { Key1:
              (string)StringValue=A string
                { SubKey:
                  (string)StringValue=A string %BASEDEST%
                  (int)NumericValue=123
                } SubKey;
            } Key1;
          } HKCU\Software\Sample ALP Application;
          Will create the same tree into the registry under the HKEY_CURRENT_USER branch.
          The name of a subsection in the INSTALL section must begin with an alias of a root registry branch. The aliases for the root registry branches are:
          HKLM - HKEY_LOCAL_MACHINE
          HKCU - HKEY_CURRENT_USER
          HKCR - HKEY_CLASSES_ROOT
      • UNINSTALL - defines which keys will be deleted on uninstall. You may want some entries to remain untouched after the application is removed - for example if they are used to store user preferences. One section for each key to be deleted must be defined. The name of the section defines the full path of the key as in the INSTALL section and the same aliases are used. Only keys can be uninstalled with all the content in them (i.e. all the values and subkeys are deleted). Please compose the names carefuly - make sure you are not going to delete registry entries used by other applications or the system itself. Sample entry:
        { HKCU\Software\Sample ALP Application\Key1:
        }  HKCU\Software\Sample ALP Application\Key1;
        will delete the Key1 and its sub-content but not the "Sample ALP Application key.
  • LINKS (^) This section defines the shortcuts to be created by the Windows shell.It contains one subsection per shortcut:
    • Shell link section - Name of the section is not meaningful but must be unique, entries are:
      • (string)location - can be specified multiply times. Every entry specifies location for a shortcut. One shortcut per each  location entry will be created. Example: (string)location=%START_PROGRAMS%\newObjects\ALP. Here some special constants can be used:
        - START_PROGRAMS - start menu programs for the current user
        - DESKTOP - current user's desktop
        and from [ALPInstall version 1.1]
        - SENDTO - Send to menu for the current user only
        - FAVORITES - Fovaorites menu for the current user only
        - STARTUP - startup menu
        - STARTMENU - start menu root
        - TEMPLATES - Templates directory for the current user only
        Constants must be enclosed with % signs in order to expand, they contain full paths including the drive letter.
      • (string)Name - This setting must be only one and specifies the file name for the created shortcut. Its extension is important and must be .url for the URLs (including ALP URLs) and .lnk for executables and other files. Example: (string)Name=ALP Samples Home.url. This is the text the user will see in the start menu (or the desktop) so choose readable names.
      • (int)InternetLink - If set to 1 the shortcut is URL, if set to 0 it is a link to a file in the local file system.
      • (string)Link - specifies what the link will point. Constants from the PATHS section can be used. Examples:
        (string)Link=alp://%BASEDEST%\Samples - this is a URL link to the ALP examples
        (string)Link=%BASEDEST%\Docs\ALP10.chm - this is a link to the ALP help file
        It is possible to use source path constants too. This will allow you to create shortcuts sites not copied to the harddisk. It is not recommended but possible to do that. If you choose that way it will be good idea to name the directory containing the site with a name that has a little chance to be identical with a directory on another CD. Failing to do so may cause ALP to open another site contained in a directory with the same name on another CD (currently in the drive).
      • (string)Parameters - [ALPInstall version 1.0.0.2] supported for local file links only (InternetLink=0). Specifies optional command line parameters for the pointed application. Windows shell ignores these parameters if the link points to a document file. If an executable is used you can pass any parameters to it. The aliases used in the value (enclosed with % characters) are expanded. For example you can create links to pages which must be opened in ALPFrame.
      • (string)Description - [ALPInstall version 1.0.0.2] Description of the shell shortcut. Supported for local file links only (InternetLink=0). Free text describing the link.
      • (string)IconFile - [ALPInstall version 1.2.2.0] Specifies a custom icon file for the shell shortcut. The icon file should be copied to the the target application location (i.e. it must be included in the file section). The path aliases are resolved as in all other destination path options.
      • (string)WorkPath - [ALPInstall version 1.2.2.0] Specifies the working directory for the program pointed by the shortcut. This could be important for such applications like ALPFrame which will search for local configuration file in the work directory. The path aliases are resolved as in all other destination path options.
  • MAIN (^) This section contains some general settings and defines texts for the user inteface displayed by the setup (TEXTS subsection):
    • (string)BasicAppLocation - Specify here the constant defined in the PATHS/DESTINATION directory that corresponds to the base destination path of the installation. Setup program will be copied and Uninstall.cfg and log files will be created there. Do not enclose the constant with % signs. Example: (string)BasicAppLocation=BASEDEST
      This entry is very important! You must choose a directory specific to your application or at least specific to a group of your applications.
    • (string)LogFilenamePrefix - Specifies the prefix part of the log file name (created at the location discussed above). Using the product short name is a good choice. Example: (string)LogFilenamePrefix=ALPCore
    • (string)SelfSignature - Very important for autoruns. Specify here some string that you are sure will be unique between the separate ALP installation on the target machine. Generating an UUID and placing it here as a string will be a good choice. Example: (string)SelfSignature={3BDEDB4B-2FE2-11D5-999F-0040332BA2EA}. Used with the /o command line option setup will check if it was already installed on this machine (by checking for the value in the appropriate key in the registry) and if so it will omit everything (files installation, links creation and so on) except (string)LaunchURL option in this section. Thus autorun will install the application only once and then will only start it. However if the installation package contains newer version of the application user will be asked to allow the stup to proceed and replace/update the older one.
    • (string)ExternalSetup - Set here path to the setup program to be executed after the ALP installation relative to the ALPInstall.exe location. ALPInstall runs it after finishing the install process i.e. if restart is needed this setup will be started after it.
    • (string)ExternalSetupParameters - [ALPInstall version 1.0.0.2] Specifies optional command line parameters for the external setup program.
    • (string)LaunchURL - specifies what URL to execute after finishing or checking the installation. It is not opened only in the uninstall cases. You can use any constant defined in the PATHS section - source or destination.Example:
      (string)LaunchURL=alp://%BASEDEST%\Samples\asp
      ALP converts internally "\" slashes to "/" slashes.
    • (string)LaunchURLParameters - [ALPInstall version 1.0.0.2] If the LaunchURL specifies an exe file on the local file system (not using a protocol scheme - such as alp:, http: and so on) this record entry specifies optional command line paramteres that will be passed to the started program. Aliases encolsed in %-s will be expanded.
    • (string)LaunchURLWorkPath - [ ALPInstall version 1.2.2.0] Specifies the work directory for the launched application - see LaunchURL above. 
    • (int)TotalSize - the total size of the package in bytes. Use approximate value to allow the setup to check for free space.
    • (int)PackageVersion - [ALPInstall version 1.1] When re-packaging the application with some updates, new features increment this value. It specifies a version used by the setup to determine if the application (if already installed) on the PC is newer or older than this one. The ASP applications contains many different files and there is no other way to determine the status of the entire application.
    • (int)SuppressInitialQuestion - [ ALPInstall version 1.1] Suppress the initial message box asking the user to permit setup to continue.
    • (int)SilentReplace - [ ALPInstall version 1.1] Yes to All to all the file replace questions. Can be useful in office or corporate environment to minimize the questions asked by the setup, but not recommended for packages inteded for the public.
    • (string)AlternativeStartup - [ALPInstall version 1.2.0.0] If exists will cause the setup to ask the user if he/she wants to start the setup or start the alternative application. Most useful on CDs where autorun application co-exists with an application that should be installed. Of course this can be the same application and installation will mean just copying it to the PC and so on. See also the corresponding entries in the TEXTS section. The dialog looks like this. The image shown in it is the same as in the main installer UI - i.e. the internal ALPInstall logo or the logo.bmp if it exists in the installer's directory.

    • (string)AlternativeStartupParameters - [ ALPInstall version 1.2.0.0] command line parameters to be passed to the alternative startup application. Ignored if the previous entry is not in the file.
    • (int)RunOnce - If set to 1acts like the /o command line option.
    • (int)SuppressFarewellMessage - [ ALPInstall version 1.2.2.0] If set to 1 will disable the final message box (Program successfully installed).
    • (int)FailIfNewerPresent - [ ALPInstall version 1.2.2.0] If set to 1 will cause an error if an attempt is made to install the package over a newer version of the application (See also the PackageVersion option above). This option is always recommended and will prevent potential mistakes. Without it the install will issue an warning and the user will be allowed to select the action to perform.
    • TEXTS subsection - contains texts to be used for the user interface shown by the setup. See the full list with the default texts. This section allows the developer to completely localize the installer. Even if the setup will proceed in English there are some entries which contain application specific values such as setup title, welcome and other messages. 
    • READMEDIALOGS [ ALPInstall version 1.1] subsection - may contain unlimted number of dialog definitions. The dialogs look like this. They may contain one or two buttons - one for confirmation and second (optional) to cancel setup. They display the text file specified. Note that if the dialog should appear after the installation you must include the displayed file in the FILES section and copy it to the system becaues if the setup needs a system restart after it the ALPInstall.exe is started from the target location and the file must be at hand.
      • A readme dialog definition section. The section name is not important - choose something convenient for you. The possible entries are:
        • (int)When - When to show the dialog 0 - before starting, 1 - after finishing the installation. The readme dialogs are shown immediatelly after any initial questions asked by the setup (as like "the application is already installed").
        • (string)ShowFile - The text file to show - relative path to the ALPInstall executable. See the general notes for the "read me" dialogs above.
        • (int)NoCancel - If exists and set to 1 hides the Cancel button of the dialog. For example a license agreement dialog should allow the user to stop here or continue but a pure "read me" dialog can be of information only type and no cancelation is required.
        • (string)Caption - Caption of the dialog window.
        • (string)OKButtonLabel - The text to be displayed in the OK (continue) button
        • (string)CancelButtonLabel - The text to be displayed in the Cancel (exit setup) button if it presents (see also NoCancel above).
  • UNINSTALL (^) Contains settings used to register the uninstall.
    • (string)RegSubkeyName - Registry key name to use. Short name of the product will be good choice.
    • (string)InfoFilename - Name of the uninstall file created during the installation and used for the uninstallation process. Example:
      (string)InfoFilename=MyALPAppUninstall.cfg
    • (string)DisplayName - Display name shown in the Add/Remove programs applet.
newObjects Copyright 2001-2006 newObjects [ ]