Visualizzazione condizionale di pagine in NSIS utilizzando nsDialog
Domanda
Ho aggiunto una pagina personalizzata per il mio programma di installazione creati utilizzando nsDialogs, tuttavia, la pagina è necessario solo per essere visualizzato a una delle mie opzioni InstType.
InstType "Default" # 1
InstType "Developer" # 2
Nell'esempio di cui sopra, vorrei pagina in più per essere mostrato ai soli sviluppatori. Qual è la migliore pratica?
- Controllare qualche attributo per determinare il tipo di installazione e di chiamata a sopprimere
nsDialogs::Show
? Non ho idea di che cosa attributo per cercare - Alcuni logica nella pagina di routing che evita la pagina di essere colpito? Non ho idea di come fare questo
- Qualcos'altro?
Soluzione
saltare una pagina , chiamata di interruzione nel creare funzione di callback per quella pagina.
!include LogicLib.nsh
InstType "Normal"
InstType "Developer"
Page Components
Page Custom myDevPage
;Page start menu etc...
Page InstFiles
Section /o "" ${SEC_Dev}
;This (hidden) section is used just to check the insttype state, but you could also use it to install dev specific files etc
SectionIn 2
Sectionend
Function myDevPage
${IfNot} ${SectionIsSelected} ${SEC_Dev}
Abort
${EndIf}
;nsDialog code goes here
FunctionEnd
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow