We use the InnoSetup installer for the majority of our applications. The installer can be scripted for silent or unattended installation, please see the command line options below:

Note: After purchase, the secure area gives you the option to download a Windows Registry (.reg) file to pre-register your product. To completely automate installations you need to apply this .reg file.

 

The Setup program accepts optional command line parameters. These can be useful to system administrators, and to other programs calling the Setup program.
/UpdateCheck=0    INSTALLER option to disable update checks made by the APPLICATION. Starting with all releases from May 16, 2012, all new releases support this option.
 
/Updated    INSTALLER option to disable update checks made by the installer. Starting with all releases from May 16, 2012, all new releases support this option.
 
/SP-
Disables the This will install... Do you wish to continue? prompt at the beginning of Setup. Of course, this will have no effect if the DisableStartupPrompt [Setup] section directive was set to yes.
/SILENT, /VERYSILENT
Instructs Setup to be silent or very silent. When Setup is silent the wizard and the background window are not displayed but the installation progress window is. When a setup is very silent this installation progress window is not displayed. Everything else is normal so for example error messages during installation are displayed and the startup prompt is (if you haven't disabled it with DisableStartupPrompt or the '/SP-' command line option explained above).

If a restart is necessary and the '/NORESTART' command isn't used (see below) and Setup is silent, it will display a Reboot now? message box. If it's very silent it will reboot without asking.

/SUPPRESSMSGBOXES
Instructs Setup to suppress message boxes. Only has an effect when combined with '/SILENT' and '/VERYSILENT'.

The default response in situations where there's a choice is:

  • Yes in a 'Keep newer file?' situation.
  • No in a 'File exists, confirm overwrite.' situation.
  • Abort in Abort/Retry situations.
  • Cancel in Retry/Cancel situations.
  • Yes (=continue) in a DiskSpaceWarning/DirExists/DirDoesntExist/NoUninstallWarning/ExitSetupMessage/ConfirmUninstall situation.
  • Yes (=restart) in a FinishedRestartMessage/UninstalledAndNeedsRestart situation.

5 message boxes are not suppressible:

  • The About Setup message box.
  • The Exit Setup? message box.
  • The FileNotInDir2 message box displayed when Setup requires a new disk to be inserted and the disk was not found.
  • Any (error) message box displayed before Setup (or Uninstall) could read the command line parameters.
  • Any message box displayed by [Code] support function MsgBox.
/LOG
Causes Setup to create a log file in the user's TEMP directory detailing file installation and [Run] actions taken during the installation process. This can be a helpful debugging aid. For example, if you suspect a file isn't being replaced when you believe it should be (or vice versa), the log file will tell you if the file was really skipped, and why.

The log file is created with a unique name based on the current date. (It will not overwrite or append to existing files.)

The information contained in the log file is technical in nature and therefore not intended to be understandable by end users. Nor is it designed to be machine-parseable; the format of the file is subject to change without notice.

/LOG="filename"
Same as /LOG, except it allows you to specify a fixed path/filename to use for the log file. If a file with the specified name already exists it will be overwritten. If the file cannot be created, Setup will abort with an error message.
/NOCANCEL
Prevents the user from cancelling during the installation process, by disabling the Cancel button and ignoring clicks on the close button. Useful along with '/SILENT' or '/VERYSILENT'.
/NORESTART
Instructs Setup not to reboot even if it's necessary.
/RESTARTEXITCODE=exit code
Specifies the custom exit code that Setup is to return when a restart is needed. Useful along with '/NORESTART'. Also see Setup Exit Codes.
/LOADINF="filename"
Instructs Setup to load the settings from the specified file after having checked the command line. This file can be prepared using the '/SAVEINF=' command as explained below.

Don't forget to use quotes if the filename contains spaces.

/SAVEINF="filename"
Instructs Setup to save installation settings to the specified file.

Don't forget to use quotes if the filename contains spaces.

/LANG=language
Specifies the language to use. language specifies the internal name of the language as specified in a [Languages] section entry.

When a valid /LANG parameter is used, the Select Language dialog will be suppressed.

/DIR="x:\dirname"
Overrides the default directory name displayed on the Select Destination Location wizard page. A fully qualified pathname must be specified.
/GROUP="folder name"
Overrides the default folder name displayed on the Select Start Menu Folder wizard page. If the [Setup] section directive DisableProgramGroupPage was set to yes, this command line parameter is ignored.
/NOICONS
Instructs Setup to initially check the Don't create a Start Menu folder check box on the Select Start Menu Folder wizard page.
/COMPONENTS="comma separated list of component names"
Overrides the default components settings. Using this command line parameter causes Setup to automatically select a custom type.
/TASKS="comma separated list of task names"
Specifies a list of tasks that should be initially selected or deselected. To deselect a task, prefix its name with a "!" character.

Only the specified tasks (and their children) will be selected; the rest will be deselected. Use the /MERGETASKS parameter instead if you want to keep the default set of tasks and only select/deselect some of them.

Example:
Deselect all tasks, then select the "desktopicon" and "fileassoc" tasks:
/TASKS="desktopicon,fileassoc"
Example:
Deselect all tasks, then select a parent task item, but exclude one of its children:
/TASKS="parent,!parent\child"
/MERGETASKS="comma separated list of task names"
Like the /TASKS parameter, except the specified tasks will be merged with the set of tasks that would have otherwise been selected by default.

If UsePreviousTasks is set to yes, the specified tasks will be selected/deselected after any previous tasks are restored.

Example:
Keep the default set of selected tasks, but additionally select the "desktopicon" and "fileassoc" tasks:
/MERGETASKS="desktopicon,fileassoc"
Example:
Keep the default set of selected tasks, but deselect the "desktopicon" task:
/MERGETASKS="!desktopicon"