NxSMSILoaderDlg plug-in

From NSIS Wiki

Author: saivert (talk, contrib)


Updated August 14th 2007: File moved to new server.

NxS MSI LoaderDlg.7z (60,6 KB)


This plugin is my version of the Banner plugin. I decided to write it after I saw the horrible MSIBanner plugin which was supposed to look like the dialog displayed when Windows Installer packages are opened (.MSI extension), of course it didn't. That's why this plugin was born.


The following fragment of script code uses all of the options/parameters that NxS MSI LoaderDlg supports.

NxSMSILoaderDlg::show /NOUNLOAD "Title of dialog" \
  /top "Top text" \
  /sub "Sub text (more info)" \
  /h 1 \
  /pos 43 \
  /max 100 \

TIP: Copy & paste into your script and modify the parameters.

The parameters explained:

This sets the top text (to the right of the icon).
Sets the subtext (above the progress bar control).
Shows/hides dialog from taskbar. Requires a number: 1 means hide. 0 means show.
Sets the progress bar position.
Sets the number of steps the progress bar control has. Default value is 100.
Enables/disables Cancel button on dialog. Requires a number: 1 = enable, 0 = disable. Default is disabled.


Values for the /pos parameter range from 0 (zero) to 100 or the value specified for the /max parameter.

Any other text passed on the stack (not one of the parameters) are used as the title of the dialog. If you pass multiple strings not recognized as a parameter the last one of these strings are used for the title. The rest is ignored.

To update the dialog use e.g:

NxSMSILoaderDlg::update /NOUNLOAD /top "Checking something..." /sub "78% complete" /pos 78

To get handle of the dialog (HWND) use:

NxSMSILoaderDlg::getWindow /NOUNLOAD
Pop $0 ; $0 now contains the handle to the dialog

TIP: You don't need to use getWindow in order to modify the text. Just use the NxSMSILoaderDlg::Update function using the same syntax as NxSMSILoaderDlg::show.

To check if the Cancel button has been pressed use:

NxSMSILoaderDlg::HasUserAborted /NOUNLOAD
Pop $R0 ; $R0 now contains "1" if user clicked Cancel or "0" (zero) otherwise.

To destroy the dialog and free resources use:


See Example.nsi for an example.

Modern UI

This plugin doesn't behave differently when the installes uses the Modern UI add-on by Joost Verburg.

Custom UI

This plugin can not be modified except if you recompile it. The source code should be included.

Some More Tricks

This plugin does not have any "tricks" like the Banner plugin has.


Based on Banner (written by brainsucker and kichik) and MSIBanner (written by Joel) plugin projects.

Personal tools