Welcome to the official website for NSIS Install Options

Install Options homepage
View Screenshots
View Help Documents
View Revision History
View License Agreement
Download Install Options
SourceForge Project site
NSIS homepage

Hosted at:
SourceForge Logo
Installer Options is a quick application I threw together so I could prompt the user for some information during the install process. It is designed to be used with the NSIS installer from NullSoft. Installer Options will create a dialog box which will be displayed inside of the NSIS window. The dialog box is defined by an INI file, which allows you to define the layout of controls by changing the INI file.

To use the program, you should include it as part of your installation. Extract it to known location (probably $TEMP), and then launch the program using ExecWait. The program takes 1 command line argument, which is the name of an INI file.

The INI file has one required section. This section includes the handle to the NSIS window and the number of controls to be created. The INI file also includes a variable number of Field sections which are used to create the controls to be displayed.

The required section is named "Settings". It will contain the following values:

    Title (optional) If specified, gives the text to set the titlebar to. Otherwise, the titlebar text is not changed.
    Caption (optional) A caption to display in the top-left corner of the window.
    ParentWnd (required) The HWND of the main NSIS window.
    To get this value, use WriteINIStr and $HWNDPARENT from your script right before launching the options dialog.
    NumFields (required) The number of control elements to be displayed on the dialog window.

Each field section has the heading "Field #" where # must be sequential numbers from 1 to NumFields. Each Field section contains the following values:

    Type (required) Type of control to be created. Valid values are "Label", "Text", "Password", "Combobox", "DropList", "Listbox", "FileRequest", or "DirRequest".
    A "label" is used to display static text. (i.e. a caption for a textbox)
    A "textbox" and "password" accept text input from the user. "password" masks the input with * characters.
    A "combobox" allows the user to type text not in the popup list, a "droplist" only allows selection of items in the list.
    A "listbox" shows multiple items and can optionally allow the user to select more than one item.
    A "FileRequest" control displays a textbox and a browse button. Clicking the browse button will display a file requester where the user can browse for a file.
    A "DirRequest" control displays a textbox and a browse button. Clicking the browse button will display a directory requester where the user can browse for a directory.
    Text (optional) Specifies the caption of a label control, or the initial text for text and comboboxes. Will also specify the initial value for FileRequest and DirRequest controls.
    ListItems (optional) A list of items to display in a combobox, droplist, or listbox.
    This is a single line of text with each item separated by a pipe character '|'
    MaxLen (optional) Causes validation on the selected control to limit the maximum length of text.
    If the user specifies more text than this, a message box will appear when they click "OK" and the dialog will not be dismissed.
    You should not use this on a "combobox" since the user can not control what is selected.
    This should be set to a maximum of 260 for "FileRequest" and "DirRequest" controls.
    Ignored on "label" controls.
    MinLen (optional) Causes validation on the selected control to force the user to enter a minimum amount of text.
    If the user specifies less text than this, a message box will appear when they click "OK" and the dialog will not be dismissed.
    Unlike MaxLen, this is useful for "Combobox" controls. By setting this to a value of "1" the program will force the user to select an item.
    Ignored on "label" controls.
    ValidateText (optional) If a particular field fails the test for "MinLen" or "MaxLen", a messagebox will be displayed with this text.
    NOTE: The only formatting performed on this text is "\n" will be replaced with a newline in the messagebox.
    (required) The position on the dialog where this control appears.
    Sorry, no GUI here to help you.
    NOTE: For combobox or droplist, the "bottom" value is not used in the same way.
    In this case, the bottom value is the maximum size of the window when the pop-up list is being displayed. All other times, the combobox is automatically szed to be one element tall. If you have trouble where you can not see the combobox drop-down, then check the bottom value and ensure it is large enough.
    NOTE (2): FileRequest and DirRequest controls will allocate 20 pixels to the browse button. Make this control wide enough the contents of the textbox can be seen.
    Filter (optional) Specifies the filter to be used in the "FileRequest" control.
    This is constructed by putting pairs of entries together, each item seperated by a | character.
    The first value in each pair is the text to display for the filter.
    The second value is the pattern to use to match files.
    For example, you might specify:
      Filter=Text Files|*.txt|Programs|*.exe;*.com|All Files|*.*
    If not specified, then the filter defaults to All Files|*.*
    NOTE: you should not put any extra spaces around the | characters.
    Root (optional) Used by DirRequest controls to specify the root directory of the search. By default, this allows the user to browse any directory on the computer. This will limit the search to a particular directory on the system.
    Flags (optional) This specifies additional flags for the display of different controls. Each value should be seperated by a | character, and you should be careful not to put any spaces around the | character.
    REQ_SAVEThis causes the "FileRequest" to dislpay a Save As dialog. If not specified, an Open dialog is used.
    FILE_MUST_EXISTUsed by "FileRequest" to determine if the selected file must exist.
    This only applies if an "Open" dialog is being displayed.
    This currently does not force the file to exist other than through the browse button.
    WARN_IF_EXISTUsed by "FileRequest" to display a warning message if the selected file already exists.
    The warning message is only displayed for files selected with the browse button.
    PATH_MUST_EXISTUsed by "FileRequest" to force the path to exist. Prevents the user from typing a non-existant path into the browse dialog window.
    This only validates path's selected with the browse button.
    PROMPT_CREATEUsed by "FileRequest" to display a warning if the selected file does not exist. However, it still allows the user to select the file.
    This only displays the warning for files selected with the browse button.
    RIGHT Used by "Checkbox" and "Radiobutton" controls to specify you want the checkbox to the right of the text instead of the left as is the default.
    CHECKED Used by "Checkbox" and "Radiobutton" controls to set the inital state to selected.
    With radiobutton controls, the last control with this property set will be the one selected.
    MULTISELECT Used by "Listbox" controls to specify if more than item may be selected. If this flag is not specified, then only one item may be selected from the list.

Updated 11/18/2001 Copyright © 2001 Michael Bishop