Platform SDK: Installing Applications/Setup

Designing the User Interface

Your installation program should use the standard Windows graphical user interface. It should present users with options and status. Sections of The Windows Interface Guidelines for Software Design describe how to design an application that is consistent with the look and feel of the Windows shell. It will also give you information about easy-to-implement features that will add value to your application and make use of new usability functionality in the shell.

To further increase the value of your application and reduce your customer's total cost of ownership (TCO) use the installer as your installer and component manager.

Your installation program should always offer setup options. The following options are recommended.

Typical setup Installs the application with all of the most common settings and copies the most commonly used files. This should be the default setup option.
Compact setup Copies the fewest number of files needed to operate your application. This option is useful for laptops and computers on which disk space is at a premium.
Custom setup Allows the user to determine the details of the installation, such as the directories to receive the files and the application features to enable. This option, which is typically used by the power user, should also include an option to set up components left out during a typical or compact setup.
Silent setup Runs setup without user interaction. This should just be a command line option so that your installation program can be run within a batch script.

Your installation program should always supply defaults. In particular, it should supply a common response to every option so that all the user has to do is press the ENTER key.

Your installation program should never ask the user to install a disk more than once and should make the computer beep when it is time for the user to insert a new disk.

Your installation program should always include a progress indicator to show users how far along they are in the setup procedure.

Your installation program should always give the user a chance to cancel the setup process before it is finished. Your program should keep a log of files that have been copied and settings that have been made so that it can clean up a canceled installation. If the installation is canceled, your program should remove any registry entries it may have made, remove any shortcuts it may have added to the desktop, and delete any files it may have copied onto the user's hard disk. The installer provides a framework to implement all of these aspects of a good installation program.