SectionsFlags
From NSIS Wiki
Jump to navigationJump to search
Author: Tu Tong (talk, contrib) |
Download Link
SectionFlags.zip (3 KB)
Description
These macros can remember or set section flags. This example show you how to get section flags and remember in windows registry after first install, installer will reset all the flags on next time to run installer. Funtion Uninstall is called before install files sections...
Usage
Section "Required" SectionIn RO Call Uninstall SectionEnd Insert code (Sections) here... Section "-" ${SectionWriteReg} HKLM "${PRODUCT_UNINST_KEY}" "Sections" SectionEnd Function .onInit ${SectionResetFlags} HKLM "${PRODUCT_UNINST_KEY}" "Sections" FunctionEnd Function Uninstall ${SectionGetValues} HKLM "${PRODUCT_UNINST_KEY}" "Sections" ${Section} ${Section Index} ${Repair} insert code here... ${Remove} insert code here... ${SectionEnd} FunctionEnd
Example
; SectionsFlags.nsi ; ; This example demonstrates how to control section flags. ;-------------------------------- ; Section define/macro header file ; See this header file for more info !include ".\SectionFunc.nsh" ;${SectionReadReg} ${SectionResetFlags} ${SectionWriteReg} !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\SectionsFlags_exam" ;-------------------------------- Name "SectionsFlags Example" OutFile "SectionsFlags_exam.exe" ShowInstDetails show ;-------------------------------- ; Pages Page components Page instfiles ;-------------------------------- ; Sections Section !Required SectionIn RO Call Uninstall SectionEnd Section "Section 1" sec1 SectionGetText ${sec1} $0 DetailPrint "Installed $0" SectionEnd Section /o "Section 2" sec2 SectionGetText ${sec2} $0 DetailPrint "Installed $0" SectionEnd Section /o "Section 3" sec3 SectionGetText ${sec3} $0 DetailPrint "Installed $0" SectionEnd Section "-" ${SectionWriteReg} HKLM "${PRODUCT_UNINST_KEY}" "Sections" SectionEnd Function .onInit ${SectionResetFlags} HKLM "${PRODUCT_UNINST_KEY}" "Sections" FunctionEnd Function Uninstall ${SectionGetValues} HKLM "${PRODUCT_UNINST_KEY}" "Sections" ${Section} ${sec1} ${Repair} DetailPrint "Repaired Section 1" ${Remove} DetailPrint "REMOVED Section 1" ${SectionEnd} ${Section} ${sec2} ${Repair} DetailPrint "Repaired Section 2" ${Remove} DetailPrint "REMOVED Section 2" ${SectionEnd} ${Section} ${sec3} ${Repair} DetailPrint "Repaired Section 3" ${Remove} DetailPrint "REMOVED Section 3" ${SectionEnd} DetailPrint "*******************************" FunctionEnd