Archive: Licensing


Licensing
Is there a way to have license data displayed only if a particular component is selected for installation?


I managed to get logic to run based off what was selected during installation but is it possible to load a "License" dialog in a function. Tried to use the normal !insertmacro but it contains a PageEx command which is not allowed to be used in a function. I can't seem to get this dialog to load properly... Any Suggestions?


Use the SectionFlagIsSet macro (from Sections.nsh) with the ${SF_SELECTED} bit to determine if your component is selected.
In the pre-function for the license page, if the component is selected, call Abort- that will skip the license page.
See the example in NSIS Help Section 4.5.3.


Essentially what we are trying to have occur is having a licensing window appear after the component selection. If a certain component is selected it has a separate license for it. So when the user clicks next from the selection a licensing window for this particular component appears. This is where it gets tricky, we want it so the user has a "I accept" / "I decline" radiobutton selection and regardless of what they select a "Next" button not disabled that will allow them to continue from there having it either install the component if they accepted or not install if they declined.


I think you will have to create a custom page using InstallOptions for this.


Or some plug-in that'll catch WM_COMMAND messages passed to the license dialog and filter them so NSIS will not disable the Next button.


Thanks a bunch. The InstallOptions was exactly what i needed. Just need to find a way to manipulate the "components" list after they selected it.