Inno Setup CLI Help


Inno Setup CLI Help is a set of functions that can be included in any Inno Setup installer to display command line usage information to the user.  This help info can be displayed by passing /?, /h, or /help to the installer.  If one of these arguments is passed, the installer display the help usage information, then exit.

This help information, for the most part, is a copy of the "Setup Command Line Parameters" of the Inno Setup help file.  The reason I want to include this information in the installer itself is to make it as easy as possible for end-users to access it.  Otherwise, it's difficult to track down this information, especially if the user does not even know that the installer uses Inno Setup.

In addition to the Inno Setup help text, this help information can also contains a list of all components, tasks, and custom parameters used by the given installer.  Again, the purpose here is to educate the user and make it as easy as possible for him to automate and/or customize installation to suit his needs.

Inno Setup CLI Help was inspired by, and uses code from, the Windows GIMP installer by Jernej Simoncic.

Return to top


CLI Help example
CLI Help example
Click to Enlarge

Download  Current Version: 1.4, Released: 04/29/2011

Inno Setup CLI Help Source (17.35 KB) - This is the Inno Setup Pascal script source

ChangeLog - Inno Setup CLI Help development details


Inno Setup
version 5.4.0 or greater recommended
GNU Lesser General Public License (LGPL), version 3

Return to top

Installation and Usage

To use Inno Setup CLI Help, download the source .iss script above and follow these directions:

  1. Copy clihelp.iss to the same directory as your setup script
  2. Add the following to the end of your [Code] section
    Constants should be set according to the instructions below
    • const
         ComponentList = '';
         TaskList = '';
         ParameterList = '';
      #include "clihelp.iss"

The ComponentList, TaskList, and ParameterList constants must follow a specific naming convention:
Name1 - Description1 | Name2 - Description2

Use a hyphen (-) to separate the name from the description, and use a pipe (|) to delineate between each item. For example:

ComponentList = '';
TaskList = 'associate - Enable context menu integration | modifypath - Add application to your system path | desktopicon - Create a desktop icon';
ParameterList = '/NOHISTORY - Disables history functionality.';

This states that there are no components available for this app, three tasks are available (associate, modifypath, and desktopicon), and it supports a custom /NOHISTORY parameter.

Note:  The three constants must always be defined.  If your program does not use any components, tasks, or custom parameters, simply define the constant(s) as an empty string.  For example, if your program has no components, the ComponentList should be set to the following:

ComponentList = '';

Once the above statements have been included and compiled into your package, the help information window will automatically displayed anytime /?, /h, or /help is passed to your installer.

Return to top