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

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

Новый участник


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

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


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.

Отправлено: 14:02, 25-01-2010 | #345