IfFileExists Changes Section Flags: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
(Example of changing Components Section state during installation.) |
|||
(One intermediate revision by the same user not shown) | |||
Line 3: | Line 3: | ||
== The Script == | == The Script == | ||
<highlight-nsis!include Sections.nsh | <highlight-nsis>!include Sections.nsh | ||
Name TestSelectSection | Name TestSelectSection | ||
Line 28: | Line 28: | ||
IfFileExists C:\autoexec.bat AutoexecExists PastAutoexecCheck | IfFileExists C:\autoexec.bat AutoexecExists PastAutoexecCheck | ||
AutoexecExists: | AutoexecExists: | ||
; This is what is done by sections.nsh SelectSection macro | |||
SectionGetFlags "${autoexec_detected}" $0 | SectionGetFlags "${autoexec_detected}" $0 | ||
IntOp $0 $0 | ${SF_SELECTED} | IntOp $0 $0 | ${SF_SELECTED} | ||
Line 35: | Line 36: | ||
IfFileExists C:\boot.ini BootExists PastBootCheck | IfFileExists C:\boot.ini BootExists PastBootCheck | ||
BootExists: | BootExists: | ||
; Use the macro from sections.nsh | |||
!insertmacro SelectSection ${boot_detected} | !insertmacro SelectSection ${boot_detected} | ||
Latest revision as of 16:54, 4 February 2006
Description
IfFileExists determines whether certain component sections are checked or unchecked.
The Script
!include Sections.nsh Name TestSelectSection OutFile "TestSelectSection.exe" Page components Page instfiles ShowInstDetails show ; This file will exist on most computers Section /o "autoexec.bat detected" autoexec_detected MessageBox MB_OK autoexec SectionEnd Section /o "Boot.ini detected" boot_detected MessageBox MB_OK boot SectionEnd Section /o "non-existing file detected" missing_detected MessageBox MB_OK missing SectionEnd Function .onInit IfFileExists C:\autoexec.bat AutoexecExists PastAutoexecCheck AutoexecExists: ; This is what is done by sections.nsh SelectSection macro SectionGetFlags "${autoexec_detected}" $0 IntOp $0 $0 | ${SF_SELECTED} SectionSetFlags "${autoexec_detected}" $0 PastAutoexecCheck: IfFileExists C:\boot.ini BootExists PastBootCheck BootExists: ; Use the macro from sections.nsh !insertmacro SelectSection ${boot_detected} PastBootCheck: IfFileExists C:\xyz_missing.xyz MissingExists PastMissingCheck MissingExists: !insertmacro SelectSection ${missing_detected} PastMissingCheck: FunctionEnd