Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата AlekseyPopovv:
А как быть с выбором папки на MUI_PAGE_DIRECTORY? По умолчанию обычная и портативная предлагают установку в $PROGRAMFILES\${APP} (InstallDir "$PROGRAMFILES\${APP}"), а хотелось бы портативную в $EXEDIR\${APP} Portable. »
Так вы дайте больше инфы или кусок своего кода, чтобы мы конкретно подсказали, какие команды вам использовать в коде или, может, сами пример накидаем, сейчас мы в угадайку будем так играть с вами, я же не знаю, как вы пользователю предлагаете сделать выбор:
1) Показать диалог с взаимоисключаемыми секциями
2) На собственной созданной страничке поставили 2 радиобаттона и юзер жмакает тот, который ему нужен (обычная/портативная установки)
3) Или тупо при заапуске показываете мессадж-бокс (сообщение с вопросом "Портативку не желаете?")...
4) Если собственная страничка, то чем создаёте? InstallOptions или nsDialogs?

вот как-то так...Ребята, задавайте более конкретные вопросы или сразу кидайте свой код, задаёте размытые вопросы - размытые ответы и получаете...

небольшой пример со стандартными средствами с взаимоисключаемыми компонентами (некрасиво, старо и не модно, мне лень что-то воротить "впустую")
Код: Выделить весь код
!include "MUI.nsh"
!include "Sections.nsh"
!include "Logiclib.nsh"

!define MUI_COMPONENTSPAGE_SMALLDESC

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_COMPONENTS
Page custom PageCreate
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Russian"


Name "TESTttt"
OutFile "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.exe"
InstallDir "$TEMP"
ShowInstDetails nevershow

Section "Обычная установка" ID_1
SectionEnd

Section /o "Портативная" ID_2
SectionEnd

Function .onSelChange

; Выбор между компонентам 1, 2
  !insertmacro StartRadioButtons $1
    !insertmacro RadioButton ${ID_1}
    !insertmacro RadioButton ${ID_2}
  !insertmacro EndRadioButtons

FunctionEnd

Function .onInit
  StrCpy $1 ${ID_1}
FunctionEnd

Function PageCreate
  SectionGetFlags ${ID_1} $0 ; Получаем флаги секции
  IntOp $0 $0 & ${SF_SELECTED} ; Проверяем, отмеченая ли для установки секция "Обычная установка"
${If} $0 == 1 ; Если $0 = 1, значит секция отмечена для установки
 StrCpy $INSTDIR "$PROGRAMFILES\TEST"
  ${Else}
 StrCpy $INSTDIR "$EXEDIR\TEST"
${EndIf}
FunctionEnd



Section -Post
SectionEnd

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:33, 04-10-2019 | #2325