Условный дисплей страниц в NSIS с помощью NSDialog

StackOverflow https://stackoverflow.com/questions/3414308

  •  26-09-2019
  •  | 
  •  

Вопрос

Я добавил пользовательскую страницу для моего установщика, созданный с помощью NSDialogs, однако на странице нужен только для одного из моих вариантов InstType.

InstType "Default" # 1
InstType "Developer" # 2

В приведенном выше примере я хотел бы показаться дополнительная страница только разработчикам. Что такое лучшая практика?

  1. Осмотрите атрибут, чтобы определить тип установки и подавить вызов nsDialogs::Show? Нет представления, какой атрибут искать
  2. Некоторые логика на странице маршрутизации, которые избегают удара страницы? Не представляю, как это сделать
  3. Что-то другое?
Это было полезно?

Решение

К пропустить страницу, вызов прерванию в обратном вызове создания функции для этой страницы.

!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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top