Условное отображение страниц в NSIS с помощью nsDialog - PullRequest
1 голос
/ 05 августа 2010

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

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

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

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

1 Ответ

4 голосов
/ 05 августа 2010

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

!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
...