Вызов предварительных функций MUI в установщике NSIS, пропуски страниц/диалогов в NSIS Установщик

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

Вопрос

Можно ли вызвать предварительную функцию диалога MUI только тогда, когда это необходимо?

!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipComponentsPage
!insertmacro MUI_PAGE_COMPONENTS

Function SkipComponentsPage
 Abort
MessageBox MB_OK "You chose to UPDATE your current version"
FunctionEnd

// Этот раздел будет проверять по умолчанию, то есть пользователь не сможет выбрать или не определить этот раздел, это должно быть выполнено .......... Как это сделать? Чтобы скрыть его, я Включили подпись в его название. его название «обязательно»

Section "-mandatory" SEC_UPDATE
    #Do update............
SectionEnd

У меня есть два Radiobuttons (Demo & Update) на моей странице «Пользовательский диалог» в установщике NSIS. Я хочу, чтобы, когда пользователь решил установить обновление (выбрала RadioButton обновления), то страница компонентов пропускается, и указанный раздел проверяется и выполняется.

Но если пользователь предпочитает установить DEM (выбирает демонстрационную радиообучу), то страница компонентов не пропущена, и пользователь может проверять или снять разделы на этой странице компонента.

Это было полезно?

Решение

Всегда называется обратный вызов страницы, но вы можете поместить логику в функцию:

...
section "" SEC_UPDATE 
sectionend

Function SkipComponentsPage
!insertmacro UnSelectSection ${SEC_UPDATE} ; Don't include update with demo by default?
${If} $InstallType == UPDATE
    !insertmacro SelectSection ${SEC_UPDATE}
    Abort
${EndIf}
Functionend

Мне не совсем ясно, если вы хотите, чтобы пользователь мог выбрать обновление в демонстрационном режиме, но если вы хотите заставить обновление, вы можете сделать только раздел.

section "Update" SEC_UPDATE 
SectionIn RO
sectionend

(И удалите вызов невыполнения из предварительной функции)

... или просто сделайте раздел невидимым с префиксом -name, как вы предложили.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top