HISTORY FILE FOR CHIEF'S INSTALLER PRO -------------------------------------- Version 2.80 (March 1996) ---------------------------- 1. A number of bugs fixed 2. $HIDE-OTHERS-PROGRESS (to prevent showing the entries being made into INI files and the registry). 3. New batch command: "IF ENV-VAR" - to check for the existence of an environment variable, and execute the specified command if it exists. The environment variable is returned in "ENV-VAR", which can be used in the command. Syntax = IF ENV-VAR <"variable"> e.g., IF ENV-VAR "progdir" WRITEINF $TEMPDIR\WINSTALL.INF;$TARGET=ENV-VAR 4. New batch command: "IF GETINI". This command checks whether a specified entry exists in an INI file, and, if so, executes the specified command. If the entry exists, its value is returned in GETINI, which can be used in the command. If the INI file is not found, or if no value exists for the entry (or the entry does not exist) then the command is not executed. Syntax = IF GETINI;;;; e.g., IF GETINI;ChiefPro;HomeDir;$DEST\CHIEF.INI;SAY Entry = GETINI !! 5. New SLOVENE language DLLs Version 2.60 (January 1996) --------------------------- 1. New batch command; "MAKEICON". This uses the same syntax as the "$ICO" reserved word. The command is for those occasions where you may need to create ICONS before calling a program (e.g., MS Setup for Win32s) which will itself reboot Windows. This command should be used VERY sparingly. 2. New batch command; "IF BITSPIXEL". This returns the number of bits per pixel in respect of the display. Basically, this can be translated into the number of colors supported by the current display driver. 4 = 16 colors 8 = 256 colors 16 = 64000 colors 24 = 16.7m colors e.g., IF BITSPIXEL 8 SAY You have a 256 color display! IF BITSPIXEL 24 SAY You have a True Color display! 3. New feature in SETUP.EXE - an INF file can now be passed as the first parameter to SETUP.EXE, preceded by a front slash (i.e., "/"). The file will be passed on to INSTALL.EXE as the INF file to use (instead of WINSTALL.INF). SETUP.EXE will remove the slash and append the extension ".INF" to the parameter. The file MUST be on DISK #1 - it will be copied to the TEMP directory, and then passed on to INSTALL.EXE. e.g., SETUP /LAN - SETUP.EXE will look for an INF file called "LAN" or "LAN.INF", (in that order), copy it to the TEMP directory, and then pass it to INSTALL.EXE as the INF file to use for the installation. 4. Bug in $LAN-SYSDIR fixed. Version 2.50 (December 1995) --------------------------- 1. This is the version that is optimised for Win32 environments (NT and Win95). It will still run as normal under 16-bit versions of Windows, but it now features extensive calls to the Win32 API (when running under NT or Win95). This includes [a] 32-bit registry functions (you can specify roots other than HKEY_CLASSES_ROOT\ under Win95 and NT) [b] long filename supprt. Note however, that it is NOT recommended to use long filenames with spaces in the names. This will cause some problems with the parser. [c] support for long filenames can be disabled by putting the following line in *both* WINSTALL.INF and AUTOCALC.INI; $LONG-FILENAMES=DISABLED NOTES: * long filenames are not supported within ZIP archives * current versions of Microsoft's COMPRESS.EXE do not support long filenames (at least, I haven't seen one that does). 2. AMENDMENTS TO $REG-DATA ---- THE SYNTAX HAS CHANGED!!! The syntax of $REG-DATA has changed - for many reasons, but mainly to provide new facilities when running under Win32. Please note that the old syntax will only work to create keys, not to assign values to them. The new syntax is; either; [a] $REG-DATA=[;] ** this must be used to CREATE keys. It will create the key "keyname" and set its value to "valuename" (if supplied, otherwise the value will be an empty string); examples: $REG-DATA=HKEY_LOCAL_MACHINE\ChiefPro $REG-DATA=HKEY_LOCAL_MACHINE\WCL;Windows Command Line Processor OR; [b] $REG-DATA=;;[; This allows you to specify the files that will be extracted from the ZIP archive. If used, this parameter MUST be the LAST one to be supplied. By default, the filespec is "*.*" - now you can specify something different - e.g., $UNZIP=$SOURCEDIR\BIN\BIN.ZIP;$DEST\BIN;CONFIRM;/F=*.EXE $DISK1=$UNZIP=$SOURCEDIR\BIN\BIN.ZIP;$DEST\DLL;CONFIRM;/F=*.DLL 10. New support for splitting large files into smaller chunks. This feature is implemented by; [a] SPLIT.EXE - a DOS command line program which will split the file into smaller chunks (each part up to a specified maximum size) and then create a log file (with the extension .~#0) [b] a new reserved word - $BUILD-FILE - which takes the log file created by SPLIT.EXE, and the output directory, as parameters 11. New reserved word: $BUILD-FILE - to rebuild a file that has been split with SPLIT.EXE syntax= $BUILD-FILE=;;[CLEANUP] if CLEANUP is used, then the file chunks and the log file will be deleted after the file has been rebuilt. NOTE: you need to add the size of the full file to your $SPACE values. 12. New reserved word: "$REGISTER-UNINSTALL" - to register your program among those that can be "automatically uninstalled" under Win95. You should supply the full path to UNINSTAL.EXE as the parameter - e.g., $REGISTER-UNINSTALL=$DEST\BIN\UNINSTAL.EXE An entry will be made into the registry under Win95 and NT only. It has no effect under current versions of NT, and no entry will be made into a Win 3.1x registry. 13. New batch command: "WRITEREG" - to write an entry into the registry. It uses the same syntax as the new $REG-DATA. 14. New batch command: "HOURGLASS" - to show the hourglass (disappears when the mouse is moved). 15. New batch command: "NOHOURGLASS" - to show the normal cursor; 16. New batch command: "EXECWAIT-WINDOW" - to run a program and wait until a window (specified by its title) no longer exists. This is the best way of running and waiting for Win32 programs, and for running and waiting for the termination of programs which themselves call other programs (such as WRITE.EXE under Win95), and for things like running the DBE Install program. The syntax is; EXECWAIT-WINDOW ;; - "timeout" is the period (in seconds) for which Chief Pro will wait for the window title to show up, before timing out - you can use one asterisk - at the beginning, or at the end - of the window title, to indicate wildcards example: EXECWAIT-WINDOW WRITE.EXE;*Wordpad;20 17. New batch command: "CHGSTR" - to change the value of a string globally in the batch file. This is useful for use with commands which obtain user input ("IF CHOICE" and "IF INPUT"), since you can then perform a global "search and replace" in the batch file, with the input obtained from the user. The syntax is; CHGSTR = e.g., IF INPUT "Please enter your name:" CHGSTR Cust_Name=INPUT 18. New feature in AutoCalc - you can now specify a default directory for all your projects. To do this, you need to make an entry in AUTOCALC.INI; DEFAULT-PROJECT-DIR= This will cause AutoCalc to always change to the specified directory every time the Project Manager is started. 19. New feature in AutoCalc - you can now supply the name of a project (.CPJ) file from the command line. To do this, run; AUTOCALC /CPJ= e.g, AUTOCALC /CPJ=C:\PROJECTS\BIN\PROJECT1 This will cause AutoCalc to try and open the specified project when it starts. Note that this feature is very new - it seems to work well so far, but I won't bet my life on it. 20. New reserved word: "$LONG-FILENAMES=DISABLED" - this is to disable long filenames support. - if used, it must be put used in BOTH; WINSTALL.INF, and AUTOCALC.INI Version 2.20 (October 1995) --------------------------- 1. New feature - each user option can now be assigned to specific disk(s) in the installation set. This is done by the extension to $USER-OPTION (below). This means that if that option is deselected by the user, the user will not be prompted for the disk(s) containing the option's files. Do NOT use this feature if you have only 1 install disk. 2. Extension of $USER-OPTION to take an addition (optional) parameter - the disk(s) (if any) to which the user option is assigned to. If this parameter is used, you MUST make sure that the specified disk(s) contain ONLY the files belonging to that user option, otherwise there WILL be confusion and the installation will fail. e.g., $USER-OPTION3=Filters;353222;$DISK5 If more than one disk is specified, the disks must be separated from each other by a space. Up to 10 disks can be specified for each user option. e.g., $USER-OPTION4=Filters;353222;$DISK6 $DISK7 $DISK9 Version 2.10 (September 1995) ---------------------------- 1. New reserved word: $FORCE-OVERWRITE-ALL-EXISTING-FILES This forces all existing installation files to be overwritten without any input from the user. This was introduced by request. Please use with great caution, because all existing files (in your respect of your application only) will be overwritten without warning (the reason why I made this command so cumbersome to type). 2. Extension of $ICO and $ICON; with $ICO, if the second parameter is 2, or "REPLACE", then an existing icon will be deleted and replaced with the new one with $ICON, if the LAST parameter is 2, or "REPLACE" then an existing icon will be deleted and replaced with the new one Examples: $ICO=$GROUP;REPLACE;INST.EXE;Chief Pro;WINSTALC.DLL $ICON=WINSTALL.TXT;Sample Readme File;Chief's Sample Files;REPLACE 3. New reserved word: $DELETE-ICON - this can be used to delete an existing icon. You can have an unlimited number of $DELETE-ICON lines but each line can only contain a single icon to be deleted. If the specified icon does not exist in the specified group, nothing happens. The search for the specified icon title is not case-sensitive. The syntax is: $DELETE-ICON=; Examples: $DELETE-ICON=$GROUP;Chief's Installer Pro $DELETE-ICON=$GROUP;Program Documentation 4. New version of AutoCalc, which introduces a new entry "USE-$ICON" into AUTOCALC.INI. This is to give users the option of specifying that AutoCalc should use the $ICON reserved word when creating template INF files (instead of $ICO, which is more difficult to customise). 5. Bug in $UNZIP command fixed. 6. Some internal enhancements. Version 2.00 (September 1995) ---------------------------- 1. Extension of "$SOURCEDIR" - can be used to change the source directory from the default (useful for internal customisations) e.g., $SOURCEDIR=D:\BIN\LOCAL\APP2 * can also be used in $ICON lines, and all other lines e.g., $ICON=$SOURCEDIR\SETUP.EXE;Re-Install MyProg v1.20 2. The directory pointed to by $TARGET will now be created recursively (in such cases the root of that directory will not be removed by the uninstaller). 3. New reserved word : $AUTOEXEC.BAT (to make entries into AUTOEXEC.BAT) Will look first in C:\ then in the PATH. Entries not deleted by the uninstaller. e.g. $autoexec.bat=SET TROOK=$DEST\TROOK 4. Limited support for UNC names (on supporting networks). 5. Extension of $DEST to provide for installing files to other drives and directories - use $DEST!!== e.g., $DEST!!=D:\New=*.ini;*.txt;*.tkt * other reserved words - e.g., $windir, $sysdir, etc., can be used here. 6. Limits removed from the maximum number of lines allowed for most reserved words; Limits removed -------------- $INI = no limit on number of lines $FONT = no limit on number of lines $REG-DATA = no limit on number of lines $BATCH-FILE = no limit on number of lines $CLEANUP = no limit on number of lines $AUTO-REPLACE = no limit on number of lines $AUTOEXEC.BAT = no limit on number of lines $DEST = no limit on number of lines $OPTIONAL = no limit on number of lines $WINDIR = no limit on number of lines (or files) $SYSDIR = no limit on number of lines (or files) Number of lines in batch files = no limit Number of files on each $DISK# = no limit Exceptions ---------- $ICON = max 128 lines (but check $ICO = no limit) Number of install disks = max 64 disks 7. Extension of $REG-DATA to cope with new classes roots (in preparation for the Win32 version). If an "HKEY_xxx\" root parameter is passed, then the whole entry will be passed on without having HKEY_CLASSES_ROOT prepended to it. Note that the key MUST end with a back-slash; e.g., $reg-data=HKEY_USERS\ChiefPro=Chief's Installer Pro (NOTE: ** This is a 16-bit program, so please do NOT use any root key other than HKEY_CLASSES_ROOT under Win95 or Windows NT). 8. New reserved word: $UNZIP e.g., $UNZIP=;; "Code" specifies how to deal with files which already exist. Possible values are; OVERWRITE-ALL (overwrite all existing files without warning) OVERWRITE-OLDER (overwrite only older files [by date-stamp]) SKIP (skip existing files) CONFIRM (ask for confirmation before overwriting existing files) e.g., $UNZIP=$sourcedir\bin.zip;$dest\bin;SKIP 9. New reserved word: $DATA-SPACE (for any non-optional data that your app might need to create at installation - not part of percent meter - but will be added to the free space checks) 10. Extension of $TARGET: $WINDIR and $SYSDIR can now be used in the $TARGET line e.g., $TARGET=$WINDIR\MYAPP 11. Bottom left corner of progress dialog now shows the number of the disk being processed 12. Installation can now be aborted between disk changes, by clicking on the "Abort" button on the dialog that prompts for the next disk. 13. New support for displaying messages (up to 10) during the course of the installation. All the messages must be in an ascii file called WINSTALL.MSG. Each message section must begin with a [#] (e.g., [#1]), and cannot be more than 8 lines long (max: 45 characters per line). The messages are displayed in turn, automatically (at the rate of 100 divided by the number of messages - as per the percent meter). 14. INSTALL.EXE is now so big that SETUP.EXE would now be desirable in all cases. You can compress INSTALL.EXE to prevent people from running it instead of SETUP.EXE (e.g., compress -r install.exe). 15. New reserved word: $OPTIONHELP# (e.g, $optionhelp1=xxxx) This is to present a brief explanation of the user-options to the user. Each user-option will have a small button next to it, if there is an OPTIONHELP for that option. Clicking on that button will display a message box with your brief explanation. Each user option may have up to 10 $OPTIONHELP# lines - but an absolute maximum limit of 1024 bytes applies to each user option. Realistically, this maximum should be 512 bytes, because of limits in the MessageBox() API when using CTL3D. 16. Extension of $INI to allow the assignment of $INI entries to user options. This is done by specifying the relevant user option (i.e, $USER-OPTIONx) as the 5th entry on the $INI line (or as the 6th entry, if the 5th entry is used for NO-REPLACE). If the specified user option is de-selected by the user at runtime, then the INI entry will not be made. 17. New (limited) support for installing files from subdirectories of the source directory (e.g., on a cd-rom or a network drive). The scheme is to use each such subdirectory as a pseudo floppy disk - i.e., the files in the subdirectory will be specified on a $disk# line, and then the subdirectory itself will be called $disk# (e.g., $disk2 = for the files which will be on the $disk2 lines). If you specify $verify-install-disks then you should also have a file called $disk#.dsk in the subdirectory. 18. The installer will now automatically look for directories names $disk# under the source directory, to install $disk# files from. This includes $disk1 as well. This simplifies installing from network disks/cd-roms. 19. New reserved word: $MAX-DUPLICATES This allows the installation of the same file into more than one destination directory. The command takes one parameter - the maximum number of times a single file can be duplicated in this way. By default, this value is set at 1. You can increase it to any number up to 30. Note that increasing this number will mean the installer looping through each $DEST\xx directory the specified number of times, for EACH file being installed. This is guaranteed to slow down the installation considerably, if the specified number is too high. Using it can also lead to multiple copies of files which you do not really want to be duplicated - this is especially so if you use wilcards at all, in your $DEST\xx lines. 20. Extension of $ICON. If the last parameter on the $ICON line is "ALLOW-DUPLICATES" (or "1") then existing icons will be duplicated if the program is installed again. e.g. $icon=$dest\test.hlp;Help file;allow-duplicates $icon=$dest\test.hlp;Help file;1 21. When disk verification is turned ON, this now also affects the first disk ($disk1) - so you must have a $DISK1.DSK file on your first disk (even if there is only one disk in the installation set). This is to remedy the anomaly where disks from disk 2 are verified, but the first (and usually the most important) disk is not verified. 22. Extension of $VERIFY-INSTALL-DISKS - to provide extra (optional) checking of the .DSK file. To enable this, supply 'READ-FILES' as a parameter - e.g., $VERIFY-INSTALL-DISKS;READ-FILES If this feature is turned on, then the installer will treat the .DSK file for every disk as a Windows .INI file, and check in the [disk-id] section for the keyname 'disk-id'. The entry here must match the name of the .DSK file being examined - e.g., a .DSK file called $disk1.dsk must have the following entries; [disk-id] disk-id=$disk1.dsk Note that if the entry does not match, the installer will assume that the disk is the wrong one and will keep prompting for the disk. Thus, you should use this feature with care. 23. Changes in AutoCalc [a] directories for $DISK# files must now be called $DISK# and not just DISK# (under the source directory tree). Files for $DISK1 can also now be in a sub-directory of the source directory - must be called $DISK1) [b] by the same token, directories holding files for $SYSDIR, $WINDIR, and $TEMPDIR must also have the "$" sign in their names. These changes are introduced for consistency and to make things easier, especially now that the installer will first of all look for $DISK# files in similarly named sub-directories of the source directory. 24. New reserved word: $DISKDIR A directory path can now be optionally specified for the files on each disk (one path only for each $disk). This is specified by using the new $DISKDIR command. The Syntax is $DISKDIR#= ;[CODE] "#" stands for the number of the disk; "CODE" is optional; it specifies whether (for disk 2 to the end) the installer should prompt the user to insert a disk. It defaults to not prompting (to simplify installing from cd-rom or network drives). If you want the user to be prompted for a particular disk, put "ASK", or "PROMPT", or just "1" as the code. "CODE" is not valid for disk 1 e.g. $diskdir1=D:\USR\BIN $diskdir2=D:\LIB\SRC;ASK $diskdir3=$SOURCEDIR\LIB\SRC;ASK $diskdir4=$SOURCEDIR\BIN\LIB * if the specified directory is NOT found, the installer will prompt the user for a disk. * the installer will still automatically look for $disk# directories under the specified directory * this feature is optional, and is not needed at all it should be used sparingly, since it has not been tested in all possible scenarios. It is NOT advised to use this feature when installing from FLOPPY disks (i.e., it is added mainly for the convenience of those who wish to install from cd-rom, or hard disk). 25. New reserved word: $FORCE-RESTART-WINDOWS Note that this feature uses the EXITWINDOWSEXEC() API call. Thus it will fail if any program refuses to terminate (e.g., if the user has a DOS session open). 26. New reserved word: $FORCE-EXIT-WINDOWS Note that this feature uses the EXITWINDOWS() API call. Thus it will fail if any program refuses to terminate (e.g., if the user has a DOS session open). 27. New reserved words: $OK-BUTTON-TITLE and $CANCEL-BUTTON-TITLE This can be used to change the caption of the "OK" and "Cancel" buttons on the edit dialog box (note that these will sometimes be overridden by the new string resources #542 and/or #543). 28. New GUI front end (or IDE) and Project Manager (run AUTOCALC.EXE). 29. New (DOS command line) compiler for INF and BATCH files (COMPILE.EXE) The syntax is; COMPILE [/BATCH] e.g. COMPILE test.inf winstall.inf e.g. COMPILE batch1.txt program.cmd /BATCH 30. INI entries with empty settings can now be created with $INI = by supply an empty string (i.e., " ") as the 4th parameter; e.g., $INI=$dest\prog.ini;386enh;printer.drv;" " 31. Extension of $GROUP. This reserved word can now take an extra (optional) parameter ("SHOW-COMBO"), after the group name. If SHOW-COMBO is used, then a combo box displaying the names of the available Program Manager groups will be made available to the user at run time. The user can then choose any of the listed groups to use as the main group. e.g., $GROUP=Chief Pro;SHOW-COMBO 32. Extension of $BANNER-MESSAGE - to take some optional parameters; CENTERED = the banner will be centered VERTICAL = the text will be displayed vertically * must supply the X co-ordinates for the vertical text e.g., $BANNER-MESSAGE=Chief Pro v2.0;CENTERED or $BANNER-MESSAGE=Chief Pro;VERTICAL;5 33. A new progress dialog and "percent" meter 34. New reserved word $LAN-SYSDIR. This was introduced by request. 35. New reserved words $BIG-METER-COLOR and $SMALL-METER-COLOR to change the colors of the percent meters. They use the same syntax as $TEXT-BACKGROUND. 36. New buttons ("Abort" and "Help") which remain on the desktop for the duration of the install. The buttons will be shown by default, unless the (new) reserved words $NO-ABORT-BUTTON or $NO-HELP-BUTTON are used. 37. New reserved words: $NO-ABORT-BUTTON and $NO-HELP-BUTTON - to turn off the desktop "Abort" or "Help" button respectively. 38. New reserved word: $ABORT-MESSAGE - this is the message that will appear to the user when the user does something to terminate the installation (e.g., clicking on the desktop "Abort" button, after the installation has commenced). 39. New feature in the AutoCalc IDE - an option to convert Visual BASIC Setup Wizard (.VBZ) files to a Chief's Installer Pro project. 40. In respect of strings in WINSTALL.INF, "\n" was always treated as the code for a new line (carriage return). If a literal "\n" is desired, an exclamation mark should precede the "n" (i.e., "\!n"). Furthermore, the "\n" is now case sensitive - so, for example, "\N" will not be converted. 41. Extension of $DISK to take $UNZIP as a parameter. This is to unzip files from a particular disk, instead of copying files from it. In this case, the files will only go to the destination provided in the $UNZIP command. e.g. $DISK1=$UNZIP;$SOURCEDIR\BIN.ZIP;$DEST\BIN 42. New reserved word: $ICO - this is for creation of Program Manager icons, but this reserved word allows more lower level access than $ICON, and also does not have any limit on the number of lines. This command takes up to 11 parameters, each separated with a semi-colon, or a comma; 1 = the group name (or $GROUP for the default) 2 = allow duplicate icons? (0 for FALSE; 1 for TRUE) 3 = command line 4 = icon's title 5 = file to load the icon from (optional) 6 = icon index in the icon file (optional) 7 = x position of the icon in group (optional) 8 = y position of the icon in group (optional) 9 = working directory (optional) 10= hotkey (optional) 11= minimize (0 for FALSE; 1 for TRUE) (optional) "Hotkey" consists of a number, made up of a code plus the ascii code of the letter; Codes: Alt = 1024 Ctrl = 512 Shift = 256 So, if you want Alt+S then: 1024+83 (i.e., 1107) is the number. example: REM 1 2 3 4 5 6 7 8 9 10 11 $ICO=$GROUP;0;$DEST\PRG.HLP;Prg Help;$DEST\PRG.ICO;0; ; ;$DEST;1107;1 Note that icon placement in existing groups is sometimes misaligned when using the $ICO command. 43. The order of appearance of the user options has been changed on the main dialog window. 44. New group boxes (with internal numeric IDs of 1 to 9) have been created around different controls in the main dialog window. 45. New reserved word: $CLOSE-GROUP-BOX ; this allows you to close any or all of the group boxes referred to above, by supplying their numeric IDs as parameters (separated by semi-colons); e.g., $CLOSE-GROUP-B0X=1;5;6 46. New reserved word: $ABORT-UNINSTAL-QUESTION ; the question to ask when running the uninstaller, and the user clicks on the 'Close' option in the system menu. 47. Support for batch commands with a new reserved word: $BATCH-FILE. In WINSTALL.INF, you can have an unlimited number of $BATCH-FILE lines, each specifying one file; but in SETUPINF.INF, you can only have one $BATCH-FILE line. Each batch file can contain an unlimited number of lines - but note that the bigger a batch file is, the longer it will take to read it. Each line in a batch file can be up to 200 characters. Notes: 1. Whatever is done by these batch commands will normally NOT be undone by the uninstaller. 2. Batch files are executed in the order in which they appear, and are processed immediately after the files have been installed (after $ini, $fonts, $reg-data, and $autoexec.bat, but before $pre-exec, and $exec) 3. Certain reserved words are invalid when used in a batch file that is run from SETUPINF.INF - e.g., $DEST $TARGET 48. Several bugs fixed. 49. END OF THE INTRODUCTORY PRICING PERIOD.