Copyright: Copyright © 1992-1995 Chapter One Dev. Ltd.
Citation: Copyright © 1992-1995 Chapter One Developments Ltd.


SETUP.EXE Help
 SETUP.EXE Version 4.0 Help

"The Original" Alternative Visual Basic Setup Bootstrap Program

Copyright © 1992-1995 Mike Chapman, Chapter One Developments Ltd.

Contents

 What is SETUP.EXE used for ?

 Product Support and Contact Information

 Reference

 Use

SETUP.EXE 4.0 is freeware. Feel free to use this program when distributing your applications - that's what is was written for after all. The usual stuff about "no warranty is expressed or implied" should be observed however. If you want to pass on SETUP.EXE except as the bootstrap for an application then you must make sure all the original files are included.

Help File Build 22 March 1995


Reference
 SETUP.EXE Version 4.0 Help

"The Original" Alternative Visual Basic Setup Bootstrap Program

Copyright © 1992-1995 Mike Chapman, Chapter One Developments Ltd.

Contents

 What is SETUP.EXE used for ?

 Product Support and Contact Information

 Reference

 SETUP.EXE 4.0 features

 Differences from the Microsoft-supplied version

 Compatibility with SetupWizard

 File Version Checking

 Internationalisation

 Change History

 Source Code

 SETUP.EXE 4.0 Distribution Files

 Use

SETUP.EXE 4.0 is freeware. Feel free to use this program when distributing your applications - that's what is was written for after all. The usual stuff about "no warranty is expressed or implied" should be observed however. If you want to pass on SETUP.EXE except as the bootstrap for an application then you must make sure all the original files are included.

Help File Build 22 March 1995


Use
 SETUP.EXE Version 4.0 Help

"The Original" Alternative Visual Basic Setup Bootstrap Program

Copyright © 1992-1995 Mike Chapman, Chapter One Developments Ltd.

Contents

 What is SETUP.EXE used for ?

 Product Support and Contact Information

 Reference

 Use

 How to use SETUP.EXE 4.0

 SETUP.INF file

SETUP.EXE 4.0 is freeware. Feel free to use this program when distributing your applications - that's what is was written for after all. The usual stuff about "no warranty is expressed or implied" should be observed however. If you want to pass on SETUP.EXE except as the bootstrap for an application then you must make sure all the original files are included.

Help File Build 22 March 1995


 SETUP.EXE 4.0 Distribution Files

See Also

The following files should have been included in the distribution archive you recieved SETUP.EXE 4.0 in. If you pass on SETUP.EXE except as a bootstrap for your application then you must include all of these files in their original forms. They should always be stored (where possible) in a ZIP archive called ASETUP.ZIP.

  SETUP.EXE	The bootstrap program.

  SETUPEXE.HLP	This help file.

  SETUP.INF	An example INF file.

  SETUP.ICO	The icon used in SETUP.EXE.

  README.TXT	General product notes.

  FILE_ID.DIZ	Standard BBS description file for SETUP.EXE.


AlsoDist

See Also

Product Support and Contact Information


 What is SETUP.EXE used for ?

SETUP.EXE is the program which the user runs to install your application. It pre-installs specific files which are used by the main Setup program which performs the actual application installation. Once these files are installed it will run the main Setup program. It is sometimes referred to as a bootstrap program.

Your main Setup program (normally called SETUP1.EXE) which provides the user with a nice friendly interface when installing your application (asks where to install the application on the user's hard disk, progress meters, configuration options, etc.) will be written in Visual Basic and in order to run will require some DLLs to be available (notably VBRUNx00.DLL and possibly SETUPKIT.DLL, VER.DLL and DDEML.DLL plus any VBXs it may use).

  If your main Setup program is run off the floppy disk all these files have to be present on it or somewhere in the user's Path (e.g. hard disk). If these files are not available from the Path then they must be on the floppy and then if Windows is still running when the installation is finished and the user removes the floppy disk the next Visual Basic application to run might think the DLLs it needs are on that floppy drive and Windows will put up an error message even though the DLL is in the System directory.

  The other issue is that all these DLLs waste a lot of disk space (some 450k at least) when stored in a usable form on the floppy disk. If they were compressed you could fit that much more of your application on it instead. Of course, if they are compressed you can't run your main Visual Basic Setup program using them.

  The third point is that the installation process will run a lot slower from the floppy disk instead of the hard disk. However, this won't be such an issue if you are installing the application from a Network drive.

Hence a bootstrap program to copy (and optionally decompress) the files required for the installation process to the user's hard disk.


 Product Support and Contact Information

If you have any problems using SETUP.EXE 4.0, or encounter problems which you believe may be software bugs, please contact us for assistance.

Feedback and suggestions are very welcome - most of the features in this latest release are requests. Your contributions to SETUP.EXE's evolution will help ensure it meets your needs in the future.

The latest version of SETUP.EXE can be found on CompuServe in the MSBASIC forum, library 2 Setup Wizard/Kit. It will have a file name of ASETUP.ZIP.

The source code to SETUP.EXE is also available.

	Mike Chapman, Chapter One Developments Ltd. 27 Gorse Drive, Smallfield, Surrey, RH6 9GJ, England. Fax: (44) 0 1342-844507
	CompuServe: 100030,351 Internet: 100030.351@compuserve.com
Email is the preferred method of contact.


 Differences from the Microsoft-supplied version

See Also

A SETUP.EXE is provided with Visual Basic in the KITFILES subdirectory but it differs from this alternative SETUP.EXE in a number of significant areas.

There have been a number of updates to the Microsoft-supplied SETUP.EXE (the update can be obtained from Microsoft and downloaded from CompuServe) and the latest version that was used for this comparison was 1.00.004 and dated 23 Aug 1993.

Microsoft-supplied	SETUP.EXE 4.0
Requires that all Visual Basic programs running be closed before the Setup process can commence. Your users may not know which applications are Visual Basic or not and may not want or be able to close them down anyway - they may even be running a VB frontend ! This is also of no use if you wish to call the Setup process from a VB application.	No restriction imposed.
Does not pass command-line arguments to the Visual Basic Setup program.	SETUP.EXE will pass any command-line arguments to the  Visual Basic Setup program SETUP1.EXE.
Requires VER.DLL to be stored on the disk and in an uncompressed form or no installation will take place.	SETUP.EXE does need VER.DLL for it to install the files (in most case) but all copies of Windows (except v3.0) provide it as standard so it is not mandatory.
Requires the more advanced version of LZEXPAND.DLL to be present on the user's hard disk. This file existed in an early form on Windows 3.0 machines and isn't compatible with this SETUP.EXE.	Works with the original Windows 3.0 LZEXPAND.DLL. This depends on the file version checking specified.
(No comparable features).	Developer-customisable Setup dialogue box title, messages, size, background colour, and style.
If there is not enough space on the user's hard disk to copy the pre-install files an error message is displayed informing the user that it could not copy a particular file.	If there is not enough space on the user's hard disk an error message is displayed informing the user of this fact and pointing out the disk space required before installation.
(No comparable features).	Developer-customisable error messages so that, for example, you can inform the user of specific support procedures.
Requires your Visual Basic Setup program SETUP1.EXE to be stored on the distribution disks with that name.	The Setup program can be stored with any name.
Will copy all files regardless of whether they are already on the user's hard disk although version checking is performed.	Provides three options for version checking. Default is Windows version information, another is by file dates, the last is to only install if it doesnt already exist.
If a file cannot be installed (for example if it is in use) then the program halts for the user to abort the installation or retry.	Allows the user to make a further choice of skipping the file. The file can also be set to be skipped by the developer if it is in use.
Requires that any files that are compressed must be compressed with the -r switch to store the uncompressed file name.	Depends on the file version checking specified.
The name of the INF file SETUP.LST is hard-coded.	The name of SETUP.EXE can be changed to something else (e.g. INSTALL.EXE) and the INF file will match this (e.g. INSTALL.INF).
The SETUP.LST file cannot contain anything other than a list of files to install.	The INF file uses standard INI file settings so that the main Visual Basic Setup program can share this file if required.
No icon.	Includes an icon within SETUP.EXE. This allows SETUP.EXE itself to be easily added to Program Manager without an icon having to be specified separately. (The icon can be modified using a resource compiler).
SETUP.EXE size: 19k	SETUP.EXE size: approx. 17k


ResourceComplierDef
Resource Compiler

Such as Microsoft's AppStudio or Borland's Resource Workshop.


 SETUP.EXE 4.0 features

See Also

It has a developer-customisable Setup dialogue box with the following definable features:

 title,

 up to four horizontally centralised messages at specific vertical positions,

 three different dialogue box styles,

 height and width,

 back colour of white or grey.

Provides Windows file version checking and also file date and time comparisons. If a file cannot be installed then, depending on the reason, the user has a choice of abort, retry or ignore. The developer can control whether the file is automatically skipped if it is in use.

Any number of pre-install files may be specified.

All pre-install files may be compressed with COMPRESS.EXE.

Optionally store the main Visual Basic Setup program (SETUP1.EXE) on the distribution disk with a developer-specified file name and also copy it to the user's Windows directory with a different name.

SETUP.EXE can easily be renamed and the INF file will match the new name (e.g. INSTALL.EXE).

The INF file can be used by other programs like SETUP1.EXE since it uses the standard INI file layout.

Passes all command-line arguments to main Visual Basic Setup program.

Allows installation to proceed with other Visual Basic programs running.

Notifies user if there is not enough space on hard disk to copy pre-install files.

When installing to a PC running a networked copy of Windows it will copy the pre-install files to the user's Windows directory instead of the networked System directory.

All text is stored in string tables for easy internationalisation through translation.

It is only approx. 17k in size.

Works with Visual Basic 1,2 and 3 and Windows 3.x and Windows for Workgroups 3.1x.


AlsoFeatures

See Also

Differences from the Microsoft-supplied version

Compatibility with SetupWizard


 Change History

Version 4.0	22 Mar 1995

Standard Windows file version checking implemented with fall-back to file dates (this is also a separate option). If the file is in use the developer can set it to be automatically skipped.

Standard fixed double border style with title bar implemented.

Command-line arguments now passed to main Visual Basic Setup program.

Default message, height and width modernised.

All text within the EXE (including references to the INI settings) have been moved to string resources which allow them to be easily translated into other languages for international versions. To modify these you can use a resource compiler.

The name of SETUP.EXE can be changed (for example to INSTALL.EXE) by just renaming it and the INF file name becomes the same (without the extension - e.g. INSTALL.INF).

New detailed custom error message for installation failures with user option to abort, retry or ignore.

If there is not enough space on the drive the user now has the option of abort, retry or ignore.

Overwrite setting for individual files removed (since proper version checking now provided).

Updated help file which no longer needs support DLL.

Source code made available.

Version 3.5	26 Apr 1994

INF file settings to specify up to 4 message lines which are automatically centred but have user-defined vertical positioning.

Settings to specify border style and back colour of the dialogue.

Developer-defined error message text for different errors.

Setting to specify different file name for SETUP1.EXE on the distribution disk.

You can now force a file to be installed but it still doesn't perform any real version checking yet.

Version information for SETUP.EXE added along with an icon.

Improved help file with contents outline.

Minor changes to some message text.

Version 3.0.1	27 Oct 1993

Fix to allow it to run on Windows 3.0 machines.

Fix to allow it to correctly calculate the free disk space when Windows is launched from DOS in the style of "c:\windows\win".

Version 3.0	28 Aug 1993

Use INF file for customisable Setup dialogue box title, message and size. Pre-installs any number of files and checks for required disk space. Is thus VB version independent.

Version 2.0	5 Feb 1993

Centralise Setup dialogue box.

Change to copy VBRUN200.DLL instead of 100 and also copy DDEML.DLL.

Version 1.01	1 Aug 1992

Pass install path to VB Setup program.

Version 1.0	15 Jul 1992

First public release.

Portions of this product were provided by Bob Feller.


 How to use SETUP.EXE 4.0

1. Determine which DLLs your Visual Basic setup program (SETUP1.EXE) requires to run. This is likely to include VBRUNx00.DLL, SETUPKIT.DLL, VER.DLL and possibly DDEML.DLL. It may also include some VBXs like THREED.VBX and, if you have created one, your Setup help file.

2. As specified in the Visual Basic 3.0 on-line help (search on Setup Toolkit ) create your distribution disk. Other versions of VB describe the Setup Toolkit elsewhere. Note its compatibility with the VB 3.0 SetupWizard.

3. Code the required settings in the SETUP.INF text file.

4. Copy SETUP.EXE and SETUP.INF to your distribution disk.


 Compatibility with SetupWizard

See Also

SETUP.EXE 4.0 is not automatically compatible with the Visual Basic 3.0 SetupWizard. To make use of it, each time you create distribution disks you will have to:

1. Run the SetupWizard as normal and create a distribution disk.

2. Examine the SETUP.LST file on the distribution disk.

3. The first file listed is the name of the main Setup program to be run. Code this file in the SETUP.INF SetupFileName entry.

3. All the other files listed are the pre-installation files. For each one code a Filen entry in the SETUP.INF.

5. Delete the SETUP.LST file from the distribution disk.

6. Copy the SETUP.INF files to the distribution disk.

To get this version of SETUP.EXE to be automatically copied to the distribution disks change the SETUPWIZ.INI file:

[SETUPWIZ]

BOOTSTRAP=setup.exe location

Where setup.exe location is the fully-qualified path and file name of SETUP.EXE 3.7. This change is only necessary once.


AlsoDiff
See Also

Compatibility with SetupWizard

SETUP.EXE 4.0 features


AlsoComp
See Also

SETUP.INF file


 SETUP.INF file

Example

SETUP.INF is a text file that lists all the files which SETUP.EXE 4.0 pre-installs on the user's machine. It also contains various optional configuration settings for the initial Setup dialogue box and the amount of space the pre-install files require.

All the following SETUP.EXE settings appear under the [BootSetup] section heading:

DialogTitle=

DialogMessagen=

DialogWidth=

DialogHeight=

DialogColor=

DialogStyle=

SetupFileName=

SetupDistName=

ErrorMessageInstall=

ErrorMessageInstallOther=

ErrorMessageFreeSpace=

ErrorMessageLaunch=

FreeSpace=

VersionCheck=

Filen=

The SETUP.INF file name was chosen because most commercial Setup programs seem to use this name as a standard and if your main Visual Basic Setup program (SETUP1.EXE) reads settings to determine what files the actual application requires to be installed then it makes sense to use only one file.

In some countries INSTALL.EXE is the more usual name for the bootstrapper (and companies like Lotus and Borland use this too). You can simply rename SETUP.EXE to INSTALL.EXE (or anything you like) and the name will correspondingly be changed for the INF file - e.g. INSTALL.INF. If you wish to change the file extension to something else see the topic on Internationalisation.


ExampleSETUP.INF
SETUP.INF example

[BootSetup]

DialogTitle=Loan Application Setup

DialogMessage1=Please wait...;20

DialogMessage2=Initialising Setup;40

DialogWidth=300

DialogHeight=150

DialogColor=0

DialogStyle=0

SetupFileName=SETLOAN.EXE

SetupDistName=SETLOAN.EX_

ErrorMessageInstall=

ErrorMessageInstallOther=

ErrorMessageFreeSpace=

ErrorMessageLaunch=

FreeSpace=472832

VersionCheck=0

File1=VBRUN300.DLL

File2=SETUPKIT.DLL

File3=DDEML.DLL;1


 ErrorMessageInstallOther setting

See Also

If SETUP.EXE is unable to install a file using Windows version checking then the following style message will be displayed and the installation will pause for user intervention:

The reason given after the file can be one of the following (see the File Version Checking topic for more details):

  Out of disk space on destination drive.

  File is in use.

  Drive is write-protected.

  General copying error.

The user then has the option of aborting the Setup, skipping this file or re-attempting the copy after taking rectifying action.

The Choose ABORT to cancel the Setup or IGNORE to skip this file text can be customised to include your own specific product support / instruction details as follows:

[BootSetup]

ErrorMessageInstallOther=error message

The error message can be any characters you like and up to 160 characters in length.


AlsoErrorInsOther
See Also

SETUP.INF file

ErrorMessageInstall setting

ErrorMessageFreeSpace setting

ErrorMessageLaunch setting

File Version Checking

Internationalistaion


 ErrorMessageLaunch setting

See Also

If SETUP.EXE is unable to run the VB Setup program (SETUP1.EXE) that is has just installed then the following message will be displayed and the installation pauses for user intervention:

The Installation Aborted text can be customised to include your own specific product support / instruction details as follows:

[BootSetup]

ErrorMessageLaunch=error message

The error message can be any characters you like and up to 160 characters in length. It will completely replace the Installation Aborted line.


AlsoErrorLaunch

See Also

SETUP.INF file

SetupFileName setting

SetupDistName setting

ErrorMessageInstall setting

ErrorMessageInstallOther setting

ErrorMessageFreeSpace setting

Internationalistaion


 ErrorMessageFreeSpace setting

See Also

If you have specified the FreeSpace setting and there is not enough disk space then the following message is displayed and the installation process will stop:

The user then has the option of aborting the Setup, re-attempting the installation after taking rectifying action or ignoring the warning.

The Please free up some disk space on the above drive text can be customised to include your own specific product support / instruction details as follows:

[BootSetup]

ErrorMessageFreeSpace=error message

The error message can be any characters you like and up to 160 characters in length. It will completely replace the Installation Aborted line.


AlsoErrorSpace

See Also

SETUP.INF file

SetupFileName setting

Filen setting

ErrorMessageInstall setting

ErrorMessageInstallOther setting

ErrorMessageLaunch setting

Internationalistaion


 ErrorMessageInstall setting

See Also

If a file cannot be found on the distribution disk or SETUP.EXE then the following message will be displayed and the installation process will stop:

The Installation Aborted text can be customised to include your own specific product support / instruction details as follows:

[BootSetup]

ErrorMessageInstall=error message

The error message can be any characters you like and up to 160 characters in length. It will completely replace the Installation Aborted line.


AlsoErrorInstall

See Also

SETUP.INF file

SetupFileName setting

Filen setting

VersionCheck setting

ErrorMessageInstallOther setting

ErrorMessageFreeSpace setting

ErrorMessageLaunch setting

File Version Checking

Internationalistaion


 SetupDistName setting

See Also

The SetupDistName setting specifies the name of the main Visual Basic Setup program (SETUP1.EXE) as it is stored on the distribution disk. It is an optional setting and is coded in the SETUP.INF file as follows:

[BootSetup]

SetupDistName=name

The name has to be exactly as the file is stored on the disk but with no path, e.g. LOANSTP.EX_. If this setting is not specified then SETUP1.EX_ will be used instead.

The file does not have to be compressed. If you do compress it then you must use the COMPRESS.EXE program supplied with Visual Basic. You do not have to use the -r parameter though.

You do not have to specify an underscore ( _ ) at the end of the extension but your file can still be compressed if you wish. SETUP.EXE will not care.

Note: If SETUP.EXE cannot find the above file on the distribution disk or it has a problem copying it then the following message will be displayed and the installation process will stop:

The Installation Aborted text can be customised using the ErrorMessageInstall setting.

This file will be copied into the Windows directory even if another file of that name exists. In that case the existing one would be overwritten.


AlsoSetupDist

See Also

SETUP.INF file

SetupFileName setting

ErrorMessageInstall setting

Internationalistaion


 DialogStyle setting

See Also

The Setup dialogue box can be of three different styles:

  Double border with title bar

  Single border with title bar

  Double border with no title bar

[BootSetup]

DialogStyle=value

Where Value is 0 for double border with title bar (which is the default), 1 for single border with title bar, or 2 for double border and no title bar.

You can customise the message displayed using the DialogMessagen settings.


AlsoDialogStyle

See Also

SETUP.INF file

DialogTitle setting

DialogColor setting

DialogMessagen setting


 DialogColor setting

See Also

The Setup dialogue box background colour can be partially customised.

It can be set to either white [image] or grey [image] .

[BootSetup]

DialogColor=value

Where Value is 0 for white (which is the default) or 1 for grey.


AlsoDialogColor

See Also

SETUP.INF file

DialogStyle setting


 DialogTitle setting

See Also

The title bar text of the Setup dialogue box can be customised.

To specify the title bar text code the following setting in the SETUP.INF file:

[BootSetup]

DialogTitle=text

Text can be any characters you like and up to 80 characters in length. If no DialogTitle setting is specified then the default text used will be Setup.

You may find you need to increase the width of the dialogue box using the DialogWidth setting from its default if you want a particularly long title. You can skip display of a title by changing the DialogStyle setting.


AlsoDialogTitle
See Also

SETUP.INF file

DialogWidth setting

DialogStyle setting


 DialogMessagen setting

See Also

You can specify up to four different lines of text to be displayed in the Setup dialogue box.

To specify the message text code the following settings in the SETUP.INF file:

[BootSetup]

DialogMessagen=text ; position

DialogMessagen=text ; position

etc...

Where n is the number of the DialogMessagen setting, e.g. DialogMessage1, then DialogMessage2, etc. up to a maximum of 4. Text can be any characters you like and up to 60 characters in length. Position is the vertical position that Text will start at within the dialogue box and is measured in pixels.

Text and Position must be separated by a semi-colon ( ; ) and that character cannot then be used in the actual message.

If no DialogMessagen settings are specified then the default text used will be Starting Setup, please wait... at a vertical position of 45.

The messages are horizontally centralised and you may find you need to increase the width of the dialogue box using the DialogWidth setting from its default if you want a particularly long message.


 DialogWidth setting

See Also

The width of the Setup dialogue box can be customised.

To specify a width code the following setting in the SETUP.INF file:

[BootSetup]

DialogWidth=width

The width is measured in pixels. If no DialogWidth setting is specified then the default width is 300 pixels.


AlsoDialogWidth
See Also

SETUP.INF file

DialogHeight setting


 DialogHeight setting

See Also

The height of the Setup dialogue box can be customised.

To specify a height code the following setting in the SETUP.INF file:

[BootSetup]

DialogHeight=height

The height is measured in pixels. If no DialogHeight setting is specified then the default height is 150 pixels.


 SetupFileName setting

See Also

The SetupFileName setting specifies the name to rename the main Visual Basic Setup program (SETUP1.EXE) to when it is copied to the user's Windows directory. It is an optional setting and is coded in the SETUP.INF file as follows:

[BootSetup]

SetupFileName=name

The name has to have the file extension specified but no path, e.g. LOANSTP.EXE. If this setting is not specified then SETUP1.EXE will be used instead.

SETUP1.EXE must be stored on the distribution disk as SETUP1.EX_ (an underscore as the last character of the extension) unless you specify a different name in the SetupDistName setting.

Note: If SETUP.EXE cannot find SETUP1.EX_ (or the SetupDistName specified one) on the distribution disk or it has a problem copying it then the following message will be displayed and the installation process will stop:

The Installation Aborted text can be customised using the ErrorMessageInstall setting.

This file will be copied into the Windows directory even if another file of that name exists. In that case the existing one would be overwritten.


AlsoDialogSetup
See Also

SETUP.INF file

FreeSpace setting

Filen setting

SetupDistName setting

ErrorMessageInstall setting

File Version Checking

Internationalistaion


SETUP1.EXE

SETUP1.EXE

SETUP1.EXE is your Visual Basic Setup program which actually performs the task of installing your application onto the user's machine. This file is copied to the user's machine by SETUP.EXE. It does not have to be copied as SETUP1.EXE or stored on the distribution disk with that name either; specify the SetupFileName and SetupDistName settings as required.


 FreeSpace setting

See Also

The FreeSpace setting specifies the amount of disk space required to copy the pre-install files to the user's hard disk. It is an optional setting and is coded in the SETUP.INF file as follows:

[BootSetup]

FreeSpace=bytes

The number of bytes all the pre-install files (all those files specified by the Filen= settings) as well as the main Visual Basic Setup program (SETUP1.EXE) take up uncompressed must be specified.

When SETUP.EXE comes to copy the pre-install files it checks to see if these files already exist on the user's hard disk. If they do then it takes away the size of these files from the specified bytes required above to come to an accurate figure of what is required.

If there is not enough space then the following message is displayed:

The Installation Aborted text can be customised using the ErrorMessageFreeSpace setting.


AlsoDialogFree
See Also

SETUP.INF file

SetupFileName setting

Filen setting

ErrorMessageFreeSpace setting

Internationalistaion


 Filen setting

See Also

The Filen setting specifies the name of a pre-install file to copy to the user's hard disk before the main Visual Basic Setup program (SETUP1.EXE) is run. Any DLLs or VBXs which your Setup program uses must be specified (you may also have a help file youve created for the Setup too). You can have any number of these settings and they are coded in the SETUP.INF file as follows:

[BootSetup]

Filen=name

Filen=name

etc...

Where n is the number of the Filen setting, e.g. File1, then File2, File3, etc. The name has to have the file extension specified but no path, e.g. VBRUN300.DLL.

You can specify a further argument on each Filen setting to indicate that if this file is in use then the attempt to copy should be skipped. See the file version checking topic for more details.

[BootSetup]

Filen=name ; skipinuse

Where skipinuse is 0 if the user should be notifed if a file that should be installed (because it is newer) cannot because it is in use (this is the default) or 1 if the copy and notification of this file should be skipped.

The actual file must be stored on the distribution disk with the last character of the extension as an underscore ( _ ), e.g. VBRUN300.DL_. Remember that the Filen setting has to have the full name (without the underscore).

Note: The file does not have to be compressed. If you do not compress the file it must still have the last character of the extension as an underscore (_).

If you do compress the files then you must use the COMPRESS.EXE program supplied with Visual Basic. Depending on which version checking method you use you may not have to use the -r parameter. It is recommended though.

If a file is specified which SETUP.EXE cannot find it on the distribution disk or has a problem copying it then the following message will be displayed noting the problem file and the installation process will stop:

The Installation Aborted text can be customised using the ErrorMessageInstall setting.


AlsoDialogFile
See Also

SETUP.INF file

SetupFileName setting

FreeSpace setting

ErrorMessageInstallOther setting

VersionCheck setting

File Version Checking

Internationalistaion


 Internationalisation

What do you do when you want to distribute a non-English language version of your product?

SETUP.EXE allows you to specify your own error message details but you also need to translate all the other text references too.

To allow you to modify these all of the text references are stored within the SETUP.EXE program in string tables. You can easily translate (or just change) them to anything you like using a resource compiler or editor.

Also stored in string tables are all the INF file setting names so these can also be modified.

In some countries INSTALL.EXE is the more usual name for the bootstrapper (and companies like Lotus and Borland use this too). You can simply rename SETUP.EXE to INSTALL.EXE (or anything you like) and the INF file name will correspondingly be changed for the  - e.g. INSTALL.INF. If you wish to change the file extension to something else then you will need to change the string table resource INI_INF.


 File Version Checking

SETUP.EXE uses file version checking to ensure that only newer files are installed on the user's machine, thereby avoiding file conflicts if an older version were installed.

Three methods are available (which are described in the VersionCheck setting topic) but the main one (and the default and recommended method) is using Windows built-in version checking.

The vast majority of Windows files (EXE, DLL, VBX) have standard version information imbedded in them. This includes a file version number in the form n.n.n.n.

SETUP.EXE formats each element of this version number to 4 digits which prevents a standard comparison failure when comparing files with versions like 3.10.4 and 3.8.3. In this case the second file would be treated as newer although we can see this isn't the case. With SETUP.EXE's formatting these would become 0003.0010.0004.0000 and 0003.0008.0003.0000 and the comparison would correctly show the first as the newest.

The following table shows the installation action SETUP.EXE would automatically make given the circumnstances when files do and do not have imbedded version information:

Source	Destination	Install ?
Version info	Version info	If source file is newer
Version info	No version info	YES
No version info (Use file date/time)	No version info (Use file date/time)	If source file is newer
No version info	Version info	NO
(Anything)	File does not exist	YES
If SETUP.EXE is unable to install a file using Windows version checking then the following style message will be displayed and the installation will pause for user intervention:

The reason given after the file can be one of the following:

  Out of disk space on destination drive.

  File is in use. For example, a DLL that needs to be installed because it is newer cannot becuase an application that uses that DLL is currently running. To allow the file to be copyied that application must be closed. See below for more information.

  Drive is write-protected. If the user does not have write access to the installation directory / drive then this message will be displayed. The administrator needs to give the user the appropriate access rights.

  General copying error. This could happen for a number of reasons and the following VIF_ errors detail what the problem is:

VIF_WRITEPROT, VIF_SHARINGVIOLATION, VIF_OUTOFMEMORY, VIF_CANNOTREADDST.

The user then has the option of aborting the Setup, skipping this file or re-attempting the copy after taking rectifying action.

File In Use Error

By default if a file is in use which needs to be installed because it is newer then the above error message will displayed. For some files this might be unnecessary, for example VER.DLL. This file exists as part of Windows 3.1 and 3.11. Your installation might be installing the latest copy 3.11 and when attempting to install this on a 3.1 machine would notify the user that it cannot because it's in use. Since this is in use by Windows itself all the user can really do is abort the setup or ignore this file. Possible somewhat confusing for them.

We could safely ignore this for this particualar file so using the Filen setting we can specify that in the above situation the VER.DLL file should automatically be skipped.

Distribution File Does Not Exist Error

If a file does not exist on the distribution disk then the following style message is displayed and the installation will stop.


 VersionCheck setting

See Also

There are three different types of file version checking available:

  Windows file version checking

The vast majority of Windows files (EXE, DLL, VBX) have standard version information imbedded in them. This includes a file version number in the form n.n.n.n.

In this check SETUP.EXE compares the file version of the file to be installed with the one that may already exist and if the one to be installed is newer the existing one is overwritten.

It handles this intelligently and for more information see the File Version Checking topic. This is the default method and is highly recommended.

  Based on the file date and time stamps

This check simply compares the file dates of the source and destination and will only install if the file to be installed is newer.

(This is also the fall-back method for the above method if no version information is present in both files).

  Install only if the file doesn't currently exist

This was the original method the SETUP.EXE used. If the destination files does not exist then the file will be installed. No version checking of any kind is carried out.

[BootSetup]

VersionCheck=value

Where Value is 0 for Windows version checking (which is the default), 1 for date and time stamps, or 2 for only if the file doesn't exist.


AlsoVersionCheck
See Also

SETUP.INF file

File Version Checking


 Source Code

Source code may be purchased for personal and in-house use only. You may not distribute a competitive Setup bootstrapper. SETUP.EXE is written in C and has been tested with both Microsoft and Borland compilers.

Source code costs $10 and is only available through the CompuServe Registration Database with Program Id 5171.

GO SWREG

Select "Register", then select "Registration ID" and quote Program Id 5171.

As soon as CompuServe notifies us of your registration (via email) we will email you the latest version of SETUP.EXE along with all the source files.