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 \ /can
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.
This plugin doesn't behave differently when the installes uses the Modern UI add-on by Joost Verburg.
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.