SectionGetFlags Basic Example
From NSIS Wiki
Jump to navigationJump to search
Author: l_d_allan (talk, contrib) |
Description
Simple example for nsis newbies of using SectionGetFlags.
There is another example involving custom pages being shown based on SectionGetFlags at:
Show custom page when a section has been selected
The Script
!include "Sections.nsh" Name "SectionGetFlags" OutFile "section_get_flags.exe" Page components ; will get warning because no instfiles page # This is the first section which has index=0 Section "!Required Read-only Bold" SectionZero SectionIn RO SectionEnd # This is the second section which has index=1 Section /o "Section Index One to show MsgBox" ControlsMsgBoxSection SectionEnd # This section does not have a section_index_output id, # so it can be examined below with SectionGetFlags 2 $SectionVar Section /o !Optional "Section Index Two" SectionEnd ;-------------------------------- Function .onInstSuccess # Get flags of second section (which is index #1) into register $0 SectionGetFlags ${ControlsMsgBoxSection} $0 # Get flags of third section (which is index #2) into register $1 SectionGetFlags 2 $1 # Just show what the contents of the registers $0 and $1 # and section.nsh values MessageBox MB_OK "Reg-Zero: $0 $\r$\n \ SfSelected: ${SF_SELECTED} $\r$\n \ Reg-One: $1 $\r$\n \ SfBold: ${SF_BOLD}" # Do a binary AND of $0 and SF_SELECTED and put results in $0 IntOp $0 $0 & ${SF_SELECTED} # Register $0 has results of GetSectionFlags of 2nd section # being AND'ed with SF_SELECTED. It will be either 0 or SF_SELECTED. # Check whether second section was selected IntCmp $0 ${SF_SELECTED} ShowMessageBox PastShowMessageBox ShowMessageBox: # Check whether third section is shown in bold and put results in $1 IntOp $1 $1 & ${SF_BOLD} MessageBox MB_OK "Section selected$\r$\n \ Is 2nd section bold?: $1" PastShowMessageBox: FunctionEnd