hb860, спасибо большое за статью
NSIS. Создаем собственные страницы инсталлятора , теперь знаю с чего хоть начинать надо... Но как это обычно бывает осталась масса вопросов.
Все было понятно до выставления координат у элементов, дальше пошли сплошные термины, расчитанные, имхо, на продвинутых нсисников. Страница в инсталяторе появилась, но как сделать, чтобы всё это заработало? Не хватает живого примера на конкретной программе, как вы делали это в предыдущих статьях.
Что непонятно:
- почему в статье доп. страница названа Page custom fnCustomInit fnCustomDestroy, а в том же скрипте к AIMP2 вы использовали более традиционное Page custom nsDialogsPage nsDialogsPageLeave.
- как добавить надписи в шапку, сейчас у меня отображается надпись предыдущей страницы, а это "Выбор папки установки".
- зачем, вообще, в инсталяторе нужен MessageBox MB_OK $R1 (в статье это такое маленькое диалоговое окно).
- главное, как связать (в моем случае) чекбоксы с ярлыками и файлами инсталируемой программы. В переменных, пока еще, как свинья в апельсинах.
Мой кусок неправильного скрипта, кто сможет выправите, пожалуйста. А, если будут комментарии (пригодиться на будущее) - благодарность будет безмерной...
читать дальше »
Код:

!include "MUI.nsh" #выбранный интерфейс
!include "nsDialogs.nsh" #плагин для дополнительных элементов
...........
...........
# Окна инсталятора
!insertmacro MUI_PAGE_WELCOME #приветствие
!insertmacro MUI_PAGE_DIRECTORY #выбор директории
Page custom nsDialogsPage nsDialogsPageLeave #дополнительное окно с выбором ярлыков
!insertmacro MUI_PAGE_INSTFILES #прогресс-бар и копирование файлов
!insertmacro MUI_PAGE_FINISH #готово
# Опции дополнительного окна. НЕЗАКОНЧЕНО! и скорее всего неправильно!
Var Dialog
Var Label
Var CheckBox1
Var CheckBox2
Function nsDialogsPage
nsDialogs::Create 1018
Pop $Dialog
${NSD_CreateLabel} 0 0 100% 24u "Выберете желаемые ярлыки программы $(^Name) для установки. Нажмите кнопку «Далее» для продолжения."
Pop $Label
${NSD_CreateCheckBox} 0 45u 100% 10u " Ярлык на Рабочий стол"
Pop $CheckBox1
${NSD_CreateCheckBox} 0 65u 100% 10u " Ярлык на Панель быстрого запуска"
Pop $CheckBox2
nsDialogs::Show
FunctionEnd
Function nsDialogsPageLeave
${NSD_GetState} $CheckBox1 $R0
CreateShortCut "$DESKTOP\${PR_NAME}.lnk" "$INSTDIR\${PR_EXE}" #впихнул сюда, т.к. не знаю куда, ярлык устанавливается в независимости от статуса чекбоксов
${NSD_GetState} $CheckBox2 $R0
CreateShortCut "$QUICKLAUNCH\${PR_NAME}.lnk" "$INSTDIR\${PR_EXE}" #впихнул сюда, т.к. не знаю куда, ярлык устанавливается в независимости от статуса чекбоксов
FunctionEnd
K.A.V. спасибо за shortcuts.ini, но хотелось бы разобраться с nsDialogs.