       CHIEF'S INSTALLER PRO: FREQUENTLY ASKED QUESTIONS
       --------------------------------------------------

THIS FAQ LIST CONTAINS A LOT OF VERY USEFUL INFORMATION, AND
CAN SAVE YOU A LOT OF TIME. PLEASE READ IT CAREFULLY !!!

AND, PLEASE READ this file BEFORE contacting me with any questions!!
     ^^^^^^                ^^^^^^
IT PROBABLY CONTAINS ANSWERS TO THOSE QUESTIONS YOU MIGHT WISH TO
ASK, AND TO THOSE WHICH YOU HAVEN'T EVEN THOUGHT OF !

NOTE: please also read CHIEF.ANS for verbatim answers to some other
      questions.

Also, please make sure that you have not mixed files from different
versions of CHIEFPRO. The files will most likely not be compatible
across versions.

[--------------------------- CHIEF'S FAQ LIST -----------------------]
0.    Q. ANY TIPS?

      A. Yes. The first is simple - read the documentation, especially
         the "reserved words" and "batch commands" sections of the help
         file (CHIEF.HLP), and go through the second help file CHIEFPRO.HLP
         with a fine toothcomb. Secondly, do NOT mix files from different
         versions of ChiefPro. Mixing files is bound to cause problems.
         Thirdly, use the ChiefPro IDE and Project Manager !


1.    Q. WHAT RESERVED WORDS (COMMANDS) DO I ACTUALLY *NEED* IN MY
         WINSTALL.INF FILE?

      A. Most of the commands in the INF file are optional. However, some
         of them are essential. At the absolute minimum, you MUST have the
         following;
                   $TITLE
                   $DISK1
                   $SPACE
                   $TARGET


2.    Q. WHAT FILES IN THE CHIEF'S INSTALLER PRO PACKAGE ARE ABSOLUTELY
         NECESSARY FOR AN INSTALLATION?

      A. As with the commands, most of the files in the package are
         optional. At the absolute minimum, you must have;
                   INSTALL.EXE
                   WINSTALL.INF
		   WINSTL32.DLL

         The installation will run perfectly well with these two files.
         However, if you are using a language other than English, you 
         must have a copy of WINSTALL.DLL compiled with the string 
         resources translated to your language (or a translated copy of
	 WINSTALL.LNG).

         If you want to change the default icon on the installer's dialog
         boxes, then you also need WINSTALC.DLL.

         If your program comes on more than 1 installation disk, then it
         is advised to ask your users to run SETUP.EXE instead of
         INSTALL.EXE. SETUP.EXE will call INSTALL.EXE at the right point,
         and running it avoids a lot of potential problems.


3.    Q. WHY DO I ALWAYS GET A DIALOG TELLING ME THAT THE INSTALLATION
         IS NOT COMPLETE WHEN I KNOW THAT IT IS?

      A. If indeed, all the files have been correctly installed:
         The installer tries to match the figure in your $SPACE line with
         the sizes of the files installed (to approximately 2% either way).
         A substantial (more than 2%) discrepancy leads to this error
         dialog. One solution is to make sure that your $SPACE information
         is accurate, or to disable the end dialog by using the
         $NO-END-DIALOG command, but the best solution is to make sure that
         the figure specified in your $SPACE line is accurate.

         Note that if you do not ensure the accuracy of your $SPACE line,
         the progress "percent" meter will also not be accurate - and in
         such cases, you SHOULD use $NO-END-DIALOG otherwise your users
         will get a spurious error message which will confuse them into
         thinking that the installation has failed.

         The easiest way to calculate ALL your space requirements is to
         run CHIEFPRO.EXE.

         Please NOTE question 7 (below) as well.


4.    Q. I HAVE SPECIFIED CERTAIN FILES TO BE INSTALLED INTO THE WINDOWS
         SYSTEM DIRECTORY WITH THE $SYSDIR COMMAND. WHY ARE THEY NOT BEING
         INSTALLED?

      A. The $SYSDIR, $WINDIR, $TEMPDIR, and $DEST lines only specify the
         DESTINATION of the files on those lines (the default is to install
         all files into the directory pointed to by $TARGET). When you
         use any of these, you still have to put those files on your $DISK
         lines, otherwise, they will not be installed at all.

         Another possible cause is that your files are compressed, and you
         are putting their compressed names (with underscores and all) on
         these lines. The only place where you should use the file names
         with the underscores (if they are compressed with the -r switch)
         is on the $DISK lines. In EVERY other place where you specify file
         names, you MUST use the original names of the files (i.e., the
         names of the uncompressed files, before they were compressed).


5.    Q. IN WHAT ORDER SHOULD THE ENTRIES IN MY INF FILE APPEAR?

      A. The whole INF file is read and processed at once. This means that
         the order is which the reserved words appear is not important in
         most cases.

         However, note that $USER-OPTION lines MUST appear before $OPTIONAL
         lines, and that any reserved word which is numbered (e.g., $DISK,
         $USER-OPTION, $OPTIONAL) must appear and be numbered in the correct
         numerical order.


6.    Q. IN WHAT LANGUAGE IS YOUR INSTALLER WRITTEN, AND WILL YOU SUPPLY
         THE SOURCE CODE (ON PAYMENT OF A FEE)?

      A. Chief's Installer Pro-32 is written in Virtual Pascal 2.1 and
         Borland Delphi 2.01. The IDE and WINSTL32.DLL were written with
	 Delphi. Everything else was written with Virtual Pascal.
	 I am sorry I cannot supply the source code.


7.    Q. CHIEFPRO SEEMS TO BE GETTING THE DISK SPACE CALCULCATIONS WRONG.
         WHAT GIVES?

      A. There are many causes for wrong calculations by CHIEFPRO. The
         primary cause is indiscriminate use of wildcards in your INF
         file. Other causes, which might be related to the one already
         mentioned are:

            [a] Mixing wildcards and full file names on $DISK, $SYSDIR,
                $WINDIR, $TEMPDIR, and $OPTIONAL lines - this might
                result in some files being processed more than once.

            [b] Having files in the directories being processed by
                CHIEFPRO which files are not going to be on your
                distribution disks.

         The bottom line is this - if you are going to use wildcards on
         your $DISK and/or $OPTIONAL lines, you need to think very
         carefully about what you are doing. It is up to you to arrange
         your lines so that no file is liable to be processed twice -
         this is because CHIEFPRO processes your INF file _exactly_ as
         it finds it.

         In my view, it advisable to AVOID mixing wildcards and full file
         names on $OPTIONAL lines. The $OPTIONAL lines in SAMPLE4.INF
         are a good example of what will cause wrong calculations by
         CHIEFPRO.


8.    Q. SOMETIMES I GET AN ERROR MESSAGE THAT THE DISK CANNOT BE READ.
	 WHY DOES THIS HAPPEN?

      A. This sometimes happens when you are doing a multi-disk install,
         and you have run INSTALL.EXE (instead of SETUP.EXE). This is
         because Windows may have swapped out parts of INSTALL.EXE to
         create room for other things to run, and now has to read
         those parts again from INSTALL.EXE. If INSTALL.EXE is on disk 1
         and you are currently on another disk (e.g., disk 3) then
         INSTALL.EXE will not be found, and the error will occur.

         The best was to avoid this type of problem is to follow the
         principle that IF THERE IS MORE THAN ONE DISK IN YOUR INSTALLATION
         SET, YOU SHOULD ALWAYS RUN SETUP.EXE (AND NOT INSTALL.EXE).
         SETUP.EXE will call INSTALL.EXE at the appropriate point.


9.    Q.  IF I WANT MY USERS TO RUN SETUP.EXE AND I WISH TO PREVENT THEM FROM
         RUNNING INSTALL.EXE, HOW CAN I DO THIS?

      A. You can compress INSTALL.EXE with Microsoft's COMPRESS.EXE (if you
         have a copy), with the  -r switch.

             i.e., "COMPRESS -r INSTALL.EXE"

         This will compress the file to INSTALL.EX_  - which of course your
         users cannot run. When SETUP.EXE is executed, it will look first for
         INSTALL.EXE. If that is not found, then it will look for INSTALL.EX_
         and decompress it to the TEMP directory, and then it will run it.

         NOTE: if you compress INSTALL.EXE you MUST use the -r switch.

         NOTE also, that from v3.00, if you create your install disks from
         the ChiefPro Project Manager, the ChiefPro support files will be
         automatically archived in a file called: WINSTALL.BIN - which will
         then be automatically copied to your DISK #1, along with SETUP.EXE and
         SETUPINF.INF. Then your users will only have the option of running
         SETUP.EXE. This option is not supported in the LITE version.

10.   Q. YOU KEEP TALKING ABOUT MICROSOFT'S COMPRESS.EXE IN YOUR
         DOCUMENTATION; HOW CAN I GET A COPY?

      A. COMPRESS.EXE is normally bundled with Windows development tools.
         Microsoft has not permitted me to bundle it with Chief's
         Installer Pro. However, if you have a Borland or Microsoft compiler,
         you probably have the program already (usually in your compiler's
         BIN directory).

         You can get a copy on Microsoft's web site or any of its Mirros, 
         inside a package called "CP0982.EXE". You can do a "NET search"
         for that filename, or you can try these URLs;
	    ftp://ftp.microsoft.com/Softlib/MSLFILES/CP0982.EXE
	    http://sunsite.doc.ic.ac.uk/Mirrors/ftp.microsoft.com/Softlib/MSLFILES/CP0982.EXE

         In any case, you can ZIP your files and then use the $UNZIP command
         to install them - you will probably get a greater compression ratio
         than using the LZW compression in COMPRESS.EXE.

         Also, you can use ChiefPro's built-in LZSS compression engine, from
         the ChiefPro IDE.


11.   Q. I WISH TO INSTALL A FILE INTO MORE THAN ONE DIRECTORY. HOW CAN I
         DO THIS?

      A. You need to set $MAX-DUPLICATES to a number which is equal to, or
         higher than the number of different directories you may want to
         install the file to.

         e.g., $MAX-DUPLICATES=5

         Note however, that the higher the figure here, the slower your
         installation will proceed, because the installer will have to loop
         through the $DEST lines at least the number of times that you
         specify in $MAX-DUPLICATES. So you really do not want to set the
         value here too high. A maximum of 3 is probably a good trade-off
         for performance reasons. If you do not care much about speed, then
         you can set it to as high as 30.


12.   Q. IF I WISH TO USE THE FULL RANGE OF FEATURES IN CHIEF'S INSTALLER PRO,
         WHICH FILES MUST I HAVE ON MY DISTRIBUTION DISKS?

      A. Really, the only files that are absolutely necessary are;
      		INSTALL.EXE
      		WINSTALL.INF
		WINSTL32.DLL

      	 However, if you have only these files on your disk, many features will
      	 be missing. For an installation program having the full range of features
      	 offered by Chief Pro, you need all these files on your DISK #1

      	 	1.  SETUP.EXE		- loader for the installer
      	 	2.  SETUPINF.INF	- INF file for SETUP.EXE
      	 	3.  INSTALL.EXE		- main installer
      	 	4.  WINSTALL.INF	- INF file for INSTALL.EXE
                5.  UNINSTAL.EXE        - the uninstaller
		6.  WINSTALL.HLP	- help file for the installation
      	 	7.  WINSTL32.DLL	- WIN32 DLL
      	 	8.  WINSTALC.DLL	- for the dialog icons
      	 	9.  WINSTALL.TXT	- for the README button
      	 	10. WINSTALL.MSG	- for the message dialog during the install
      	 	11. WINSTALL.WEL	- for the welcome message dialog
      	 	12. WINSTALL.CPR	- for the copyright message dialog

      	 	
	ALL these files, except #1 and #2 (SETUP.EXE SETUPINF.INF) CAN
	be compressed on your DISK #1. SETUP.EXE will decompress them
	automatically. Thus, you can follow these steps (or run a DOS
	batch file that goes something like this):

		REM --- MAKEDSK1.BAT -----------
		REM --- A DOS BATCH FILE TO COPY INSTALL FILES TO DISK #1
		@ECHO OFF
		C:
		CD \TEMP
		MD C:\TEMP\DIST
		COPY SETUP.EXE C:\TEMP\DIST
		COPY SETUPINF.INF C:\TEMP\DIST
		COMPRESS -r INSTALL.EXE  C:\TEMP\DIST
		COMPRESS -r WINSTALL.INF C:\TEMP\DIST
		COMPRESS -r WINSTALL.HLP C:\TEMP\DIST
		COMPRESS -r WINSTALL.TXT C:\TEMP\DIST
		COMPRESS -r WINSTALL.MSG C:\TEMP\DIST
		COMPRESS -r WINSTL32.DLL C:\TEMP\DIST
		COMPRESS -r WINSTALC.DLL C:\TEMP\DIST
		COMPRESS -r WINSTALL.WEL C:\TEMP\DIST
		COMPRESS -r WINSTALL.CPR C:\TEMP\DIST
		ECHO INSERT DISK #1 IN DRIVE A:
		PAUSE > NUL
		CD C:\TEMP\DIST
		COPY *.* A:\

	OR,
	You can create your projects and install disks from the ChiefPro
        Project Manager. When you do so, all these files (except WINSTALL.INF)
        will be compressed and archived in the ChiefPro archive: WINSTALL.BIN,
	on your DISK #1.
 	

13.   Q. I WOULD LIKE TO PUT ALL MY APPLICATION'S FILES IN ZIP ARCHIVES AND
         THEN UNZIP THEM AT INSTALL TIME. CAN I DO THIS?

      A. The answer is "YES". The easiest way to do this is to put the files
         for each disk in one (or more) ZIP files, put those files on the
         relevant disks, and then use the $UNZIP command on the $DISK# lines.

      	 e.g.,
      	 	$DISK1=$UNZIP;$SOURCEDIR\PROG100.ZIP;$DEST;CONFIRM
      	 	$DISK2=$UNZIP;$SOURCEDIR\PROG200.ZIP;$DEST;CONFIRM
      	 	$DISK3=$UNZIP;$SOURCEDIR\PROG300.ZIP;$DEST\SRC;SKIP
      	 	$DISK4=$UNZIP;$SOURCEDIR\PROG400.ZIP;$DEST\DOC;SKIP;/F=*.XYZ
         

      ** NOTE: This feature is not supported in the LITE version.


14.   Q. I HAVE SOME LARGE DATA FILES THAT ARE TOO BIG TO FIT ONTO A SINGLE
         FLOPPY DISK. HOW CAN I SPLIT THEM INTO SMALLER BITS SO THAT THEY
         CAN FIT ONTO FLOPPIES?

      A. You can do this by running the DOS utility SPLIT.EXE, or by selecting
         "Split File" from the CHIEFPRO IDE.

         Then you need to put the files on your installation disks, and install
         then in the normal way (via your $DISK# and $DEST lines). You rebuild
         the files by putting appropriate $BUILD-FILE statements in your
         WINSTALL.INF file.

      ** NOTE: This feature is not supported in the LITE version.


15.   Q. CAN I RUN A PROGRAM AND THEN WAIT UNTIL IT IS CLOSED?

      A. Yes. The recommended way of doing this is to use the EXECWAIT-WINDOW
         batch command.


16.   Q. CAN I INSTALL THE BORLAND DATABASE ENGINE (BDE) WITH THIS PROGRAM?

      A. The answer is YES. The ChiefPro batch language is rich enough to
         use for this purpose. See for example the template batch files:
             BDE16.CHF, and
             BDE32.CHF in your UTILS directory, for examples.
         
	 You can add the BDE files to your projects via the ChiefPro IDE  

      ** NOTE: This feature is not supported in the LITE version.


17.   Q. HOW CAN I CHANGE/CUSTOMISE THE MESSAGES GIVEN BY THE INSTALLER?

      A. Easily. You can either;
           [a] edit the string tables in UNINST.RC and WINSTALL.RC and
               then produce your own UNINST.DLL and WINSTALL.DLL files,
           or
           [b] edit the strings UNINST.LNS and WINSTALL.LNS, and then
               rename them to UNINST.LNG and WINSTALL.LNG respectively.

         ChiefPro will automatically search for the .DLL and .LNG files
         on your DISK #1 in order to load the string tables. The .LNG
         files take precedence over the .DLL files.


18.   Q. WHEN I CREATE MY INSTALLATION DISKS FROM THE PROJECT MANAGER, I
         NOTICE THAT SOME OF THE "CHIEFPRO" FILES ARE NOT ON MY DISK #1 -
         AND, I NOTICE A FILE CALLED "WINSTALL.BIN". WHAT IS THIS
         FILE DOING THERE?


      A. WINSTALL.BIN was introduced in v3.00 as a means to avoid cluttering
         your DISK #1 with ChiefPro program and support files. When you
         create your install disks from the Project Manager, the ChiefPro
         files (added automatically to each new project) will be compressed,
         and archived into WINSTALL.BIN. This not only reduces clutter, it
         also saves disk space, and protects the files from being tampered
         with.

         Indeed, any file in your project which has ALL these attributes;
                 TARGET DIRECTORY   = $CHIEF
                 USER OPTION #      = -1
                 DISK #             = 1

         will be marked as a ChiefPro support file, and will be archived into
         WINSTALL.BIN.

         When the files have been archived, the only ChiefPro files which
         will be on your DISK #1 will be;
                 SETUP.EXE
                 SETUPINF.INF
		 UNINSTAL.EXE
                 WINSTALL.BIN
		
         When the user runs SETUP.EXE, all the files in WINSTALL.BIN will
         be extracted into the TEMP directory, and then SETUP.EXE will
         load INSTALL.EXE, and the installation will proceed from there.

      ** NOTE: This feature is not supported in the LITE version.


19.   Q. HOW DO I GET THE COPYRIGHT DIALOG OR THE WELCOME DIALOG TO APPEAR 
         WITH A CUSTOM FILE ?

      A. If the file WINSTALL.CPR (for the copyright dialog) or WINSTALL.WEL
         (for the welcome dialog) is present on your DISK #1, ChiefPro will 
	 automatically display these files in the Copyright and Welcome dialogs.

	 NOTE: for this to work, you must add the relevant file(s) (i.e.,
	       WINSTALL.CPR and/or WINSTALL.WEL) to your project. Then you will
	       need to mark them as ChiefPro support files, by setting their
	       target directory to $CHIEF, and the user option number to -1
	       (see the answer to Question 18 sbove).


20.   Q. HOW DO I GET A HISTORY DIALOG LIKE THE ONE I SEE WHEN I INSTALL
	 CHIEFPRO ?

      A. This is achieved in several steps. First, the file WINSTALL.TXT
         must be present on your DISK #1. If this file is present, the
         dialog in which you see the "Start Install" button will include an
         extra button labelled "Read Me". You can use the $README-BUTTON-TEXT
         keyword to customize the text on this button. When this button is
         pressed, a window will popup with WINSTALL.TXT displayed.

         This has, however, not answered your question. To get the History
         (or some other name) dialog to appear after the Copyright dialog,
         add to your INF file (or configure accordingly in the IDE) the
         following:

         $USE-WIZARDS=1
         $README-BUTTON-TEXT=&Release Notes //* or the text of your choice.

	 Finally, follow the steps described in Question 18 above to mark the 
	 file WINSTALL.TXT as a ChiefPro support file so that the IDE will add
	 it to the files to be archived inside WINSTALL.BIN.


21.   Q. I MAKE SOME ADDITIONS TO THE REGISTRY, BUT THEY DON'T ALL GET DELETED.
  	 HOW DO I FIX THIS ?

      A. Depending on how you make the additions to the Registry, entries will not
  	 be deleted. For example, just the command;

         $REG-DATA=HKEY_CURRENT_USER\Software\SoftDev Inc\Package\Settings;License;"unlicensed"

         will create the required series of key, subkeys and data value, but only
         the data value "License" will be removed by the uninstall. What you have
         to do is create the keys and subkeys explicitly e.g;

         $REG-DATA=HKEY_CURRENT_USER\Software\SoftDev Inc
         $REG-DATA=HKEY_CURRENT_USER\Software\SoftDev Inc\Package
         $REG-DATA=HKEY_CURRENT_USER\Software\SoftDev Inc\Package\Settings

         then add

         $REG-DATA=HKEY_CURRENT_USER\Software\SoftDev Inc\Package\Settings;License;"unlicensed"

         The uninstall process will then remove the whole "SoftDev Inc" entry,
         including all subkeys and values.


22.   Q. WHEN I USE THE "IF EXIST" OR "IF NOT-EXIST" BATCH COMMANDS WITH FILES THAT
         HAVE SPACES IN THEIR NAMES, THE COMMANDS FAIL. WHY?

      A. Because the space was originally the separator for parameters in batch commands.
         Now, the semi-colon is also used as a separator. Eventually, support for the space
         character as a separator will be discontinued (except perhaps for the "SAY" command).
         So it is advisable to start using the semi-colon now.

         In the meantime, you should enclose filenames that may contain spaces
         within double quotation marks.

         	e.g.,
         	IF EXIST;"$WINDIR\WIN.COM";SAY It Exists!;#ELSE;SAY I cannot find it!
      

23.   Q. DOES CHIEFPRO ALLOW YOU TO CHECK THE CURRENT USER'S USERNAME OR USER RIGHTS ?
	 THE REASON FOR ASKING IS THE FACT THAT WINDOWS NT WILL ONLY ALLOW THE REGISTRY
	 TO BE EDITED BY THE ADMINISTRATOR, OR SOMEONE WITH ADMINISTRATOR ACCESS.

      A. These two ChiefPro batch file commands show how you can obtain the 
	 user name. One uses the environment variable, and the other reads 
	 from the registry.
	 
	1. IF ENV-VAR;"USERNAME";SAY ENV-VAR;#ELSE;SAY NOT! 

	2. IF REGENTRY;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName;SAY REGENTRY;#ELSE;SAY NOT! 


24.   Q. DOES CHIEFPRO ALLOW ME TO CREATE AN INSTALLATION SET WITH MORE THAN ONE
	 DISK? IF SO, HOW DO I ACHIEVE THIS?
	 
      A. Yes, you can create multi-disk installations (up to 64 disks).
      	 You will need to specify yourself (in the IDE project) which
      	 disk you want each file to be on. This is how to create an installation
      	 for more than 1 disk. Normally, when you add a file to your project, the 
	 file's "Disk #" is set to "1". To have an installation for more than 
	 one disk, all you need to do is to change the "Disk #" for some files 
	 to "2", "3" etc. The IDE does not calculate how many disks you will 
	 need for your project, because this will depend on what compression 
	 method (if any) that you want to use.
	 
25.   Q. MY INSTALLATION HAS A NUMBER OF FILES WITH THE SAME NAME, BUT WITH
	 DIFFERENT CONTENTS, AND THEY ARE ALL TO GO INTO DIFFERENT DIRECTORIES.
	 HOW CAN I IMPLEMENT THIS SET UP WITH CHIEFPRO?

      A. The installer is not designed to install multiple files 
	 with the same name but which are actually different, via the standard 
	 installation process. To do this, you would need to either use batch
	 files to copy/rename the duplicate files, or to put the files into
	 archives (ZIP or ChiefPro LZSS) and then extract them at install time
	 with $UNZIP or $UNPAK.


26.   Q. SOMETIMES WHEN I RUN A CHIEFPRO BATCH FILE FROM SETUP.EXE, IT APPEARS
	 THAT THE INSTALLER HAS HUNG - ALL WINDOWS DISAPPEAR, BUT THE TASK MANAGER
	 SHOWS THAT SETUP.EXE AND INSTALL.EXE ARE STILL RUNNING. WHAT IS THE PROBLEM?

      A. Try and make sure that every Chiefpro batch file ends with either the EXIT
         or RETURN command. That tells the installer that the batch file has finished
         running.


----------------------------------
Prof Abimbola Olowofoyeku (The Chief)
February 2002
E-mail: African_Chief@bigfoot.com

