|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets есть такой вопрос глянул скрипт (разобраля с бутонами, чекбоксом, картинками), но есть проблема по сути...
вот скрин вот код... !define PRODUCT_NAME "Winamp" !define PRODUCT_VERSION "5.5.4.2147" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !include "MUI2.nsh" SetCompressor /SOLID lzma !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\winamp.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" !define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit !define BRANDING "RePack by D!akov" var dlg var Label var Check var Check1 var Check2 var CheckBox var CheckBox1 var CheckBox2 var Radio var Radio1 var RadioButton var RadioButton1 var ImageHandle var Image !insertmacro MUI_PAGE_WELCOME Page custom PageInit PageDestroy !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_LANGUAGE "Russian" ; Описание фаqла VIProductVersion "${PRODUCT_VERSION}" VIAddVersionKey /LANG=${LANG_Russian} "CompanyName" "RePack by D!akov" VIAddVersionKey /LANG=${LANG_Russian} "FileDescription" "${PRODUCT_NAME} ${PRODUCT_VERSION}" VIAddVersionKey /LANG=${LANG_Russian} "FileVersion" "${PRODUCT_VERSION}" ; Конец описания файла Name "${PRODUCT_NAME}" Caption "Установка ${PRODUCT_NAME} ${PRODUCT_VERSION}" UninstallCaption "Удаление ${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe" InstallDir "$PROGRAMFILES\Winamp" ShowInstDetails show ShowUnInstDetails show BrandingText "${BRANDING}" Function .onInit InitPluginsDir ;иницилизируем рабочую папку, куда будут распакованы картинки File "/oname=$PLUGINSDIR\nsis-r.bmp" "${NSISDIR}\Contrib\Graphics\Header\nsis-r.bmp" File "/oname=$PLUGINSDIR\orange-r.bmp" "${NSISDIR}\Contrib\Graphics\Header\orange-r.bmp" FunctionEnd Function PageInit !insertmacro MUI_HEADER_TEXT "Выбор типа и компонентов установки" "..." nsDialogs::Create 1018 Pop $dlg ${NSD_CreateLabel} 0u 0u 120u 12u "Пожалуйста, сделайте выбор:" Pop $Label ;; ${NSD_CreateRadioButton} 0u 14u 150u 12u "Установка Winamp 5.623 Build 3199 Pro" Pop $RadioButton ${NSD_SetState} $RadioButton 1 ;делаем радиобутон отмеченным ${NSD_OnClick} $RadioButton RadioButton ;событие отметки радиобутона ;; ${NSD_CreateRadioButton} 0u 28u 160u 12u "Распаковка Winamp 5.6.2.3199 Pro Full Final" Pop $RadioButton1 ${NSD_OnClick} $RadioButton1 RadioButton1 ;событие отметки радиобутона ;; ${NSD_CreateCheckBox} 0u 100u 120u 12u "Ярлык(и) на рабочем столе" Pop $CheckBox ${NSD_SetState} $CheckBox 1 ;; ${NSD_CreateCheckBox} 0u 115u 100u 12u "Ярлыки в меню «Пуск»" Pop $CheckBox1 ${NSD_SetState} $CheckBox1 1 ;;;;;;;;;; ${NSD_CreateCheckBox} 150u 115u 140u 12u "Установить набор скинов" Pop $CheckBox2 ${NSD_SetState} $CheckBox2 1 ;;;;;;;; ${NSD_CreateBitmap} 180u 0u 100% 100% "" ;создаем контрол для картинок Pop $Image ${NSD_SetImage} $Image "$PLUGINSDIR\nsis-r.bmp" $ImageHandle ;загружаем картинку nsDialogs::Show ${NSD_FreeImage} $ImageHandle ;удаляем картинку FunctionEnd Function switching ${NSD_GetState} $RadioButton $Radio ;снимаем статус отметки радиобуттона ${If} $Radio == 1 ;если радибуттон "Установка обычной версии" отмеченный то... EnableWindow $CheckBox 1 EnableWindow $CheckBox1 1 EnableWindow $CheckBox2 1 ${NSD_SetState} $CheckBox 1 ${NSD_SetState} $CheckBox1 1 ${NSD_SetState} $CheckBox2 1 ${NSD_FreeImage} $ImageHandle ;удаляем картинку ${NSD_SetImage} $Image "$PLUGINSDIR\nsis-r.bmp" $ImageHandle ;загружаем картинку ${Else} ;если радибуттон "Установка обычной версии" неотмеченный то... EnableWindow $CheckBox 0 ;затеняем чекбокс EnableWindow $CheckBox1 0 ;затеняем чекбокс EnableWindow $CheckBox2 0 ;затеняем чекбокс ${NSD_SetState} $CheckBox 0 ;делаем чекбокс неотмеченным ${NSD_SetState} $CheckBox1 0 ;делаем чекбокс неотмеченным ${NSD_SetState} $CheckBox2 0 ${NSD_FreeImage} $ImageHandle ;удаляем картинку ${NSD_SetImage} $Image "$PLUGINSDIR\orange-r.bmp" $ImageHandle ;загружаем картинку ${EndIf} FunctionEnd ;функции события отметки радиобуттонов Function RadioButton Pop $RadioButton Call switching FunctionEnd Function RadioButton1 Pop $RadioButton1 Call switching FunctionEnd Function PageDestroy ;функция которая выполняется при закрытии кастомной станички ;снимаем статусы отметок радиобуттонов и чекбоксов ${NSD_GetState} $RadioButton $Radio ${NSD_GetState} $RadioButton1 $Radio1 ${NSD_GetState} $CheckBox $Check ${NSD_GetState} $CheckBox1 $Check1 ${NSD_SetState} $CheckBox2 $Check2 FunctionEnd Section "-Обычная установка" ${If} $Radio == 1 SetOutPath "$INSTDIR\Winamp" File /r "D:\Winamp\Winamp\*.*" SetShellVarContext all CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Nullsoft" "" "" WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Nullsoft\Winamp" "regname" "D!akov" WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Nullsoft\Winamp" "regkey" "~AYKPaDABBRfbBTiZGjQO" ExecWait '$INSTDIR\winamp.exe /REG=LCAD' WriteUninstaller "$INSTDIR\uninst.exe" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$INSTDIR\winamp.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_VERSION}" Delete "$INSTDIR\Winamp" ;;; ;тут пишем все команды при обычной установке ;DetailPrint "Обычная установка" ;;; ${EndIf} SectionEnd Section "-Распаковка портативной версии" ${If} $Radio1 == 1 SetOutPath "$INSTDIR" File /r "D:\Winamp\WinampPortable\*.*" SetShellVarContext all ;тут пишем все команды при распаковки портативной версии MessageBox MB_OK "Портативная версия распакована в текущую папку." ;;; ${EndIf} SectionEnd Section "-Ярлыки" ${If} $Check == 1 CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\winamp.exe" ;;; DetailPrint "Ярлык на рабочий стол" ;;; ${EndIf} ${If} $Check1 == 1 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\winamp.exe" ;;; DetailPrint "Ярлык в меню Пуск" ;;; ${EndIf} SectionEnd Section "-Скины" ${If} $Check2 == 1 SetOutPath "$PROGRAMFILES\Winamp\Winamp\Skins" File /r "D:\Skins\*.*" SetShellVarContext all ;;; ${EndIf} SectionEnd Section Uninstall ExecWait '$INSTDIR\winamp.exe /UNREG' RMDir /r "$INSTDIR" SetShellVarContext all RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" Delete "$Desktop\${PRODUCT_NAME}.lnk" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "SOFTWARE\Nullsoft" SetAutoClose true SectionEnd |
Отправлено: 18:53, 19-12-2011 | #2041 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать kotkovets,
Цитата:
А проблема решилась просто установкой переменной в UninstallCaption и изменением этой переменной в процессе выполнения деинсталлятора. |
|
Последний раз редактировалось tisole, 19-12-2011 в 19:12. Причина: опечатка Отправлено: 19:11, 19-12-2011 | #2042 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
Function PageDestroy ;функция которая выполняется при закрытии кастомной станички ;снимаем статусы отметок радиобуттонов и чекбоксов ;;; ${NSD_SetState} $CheckBox2 $Check2 FunctionEnd Поэтому компилятор честно предупредил, что переменная $Check2 объявлена, но не иницилизирована (не используется), а условие поставлено для распаковки скинов:если $Check2 = 1 Поэтому ничего и не работало. Цитата tisole:
|
||
------- Последний раз редактировалось kotkovets, 20-12-2011 в 00:51. Отправлено: 21:32, 19-12-2011 | #2043 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать |
Отправлено: 03:34, 20-12-2011 | #2044 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Спасибо человечище kotkovets...буду курить скрипт дальше...
Еще есть такие вопросы Документация Справочник по NSIS . Создан силами нашего сообщества. Начните с него. Официальное руководство Статья: создаем инсталлятор под Windows в NSIS Статья: Инсталляция by NSIS Примеры от K.A.V. Кликабельный BrandingText Картинки-превьюшки для радиокнопок От меня лично (hb860): Я давно хотел создать что-то вроде учебника по NSIS. Я уже начал работать над этим, с целью написать простое руководство на практических примерах. Что у меня на данный момент получилось: Создание своего инсталлятора на NSIS. Первые шаги Создание своего инсталлятора на NSIS. Секции и выбор компонентов Создание своего инсталлятора на NSIS. Деинсталлятор NSIS. Создаем собственные страницы инсталлятора Создание своего инсталлятора на NSIS. Ассоциации файлов. Макросы Создание своего инсталлятора на NSIS. Определяем системный диск Создание своего инсталлятора на NSIS. Один инсталлятор для x86 и х64 систем сразу Создание своего инсталлятора на NSIS. Подробней о скрытых секциях. Скрытые группы секций. Реализация дополнительных ключей командной строки Определение версии и редакции операционной системы в NSIS Запуск "родного" x64 процесса из x86 инсталлятора NSIS. Перенаправление папок Большинство ссылок не доступны..у кого нибудь нет оф лайн варианта... Как сделать так что бы при нажатии на готово в конце открывался url адрес.. И еще єто интересует Создание своего инсталлятора на NSIS. Один инсталлятор для x86 и х64 и Реализация дополнительных ключей командной строки систем сразу но нигде нет... Еще раз большое спасибо! |
Отправлено: 10:43, 20-12-2011 | #2045 |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Если по ссылкам переходить вот что выдает:
Нужно обновить ссылки, но я, увы, не могу редактировать шапку Хм, поиск на сайте по слову "NSIS" ничего не дает. |
------- Отправлено: 10:59, 20-12-2011 | #2046 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Цитата Krinkels:
Если есть то скинь пожалуйста на електронку romasok88@gmail.com! |
|
Отправлено: 12:14, 20-12-2011 | #2047 |
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Не, у меня такого нету. Мне хватает справки
|
------- Отправлено: 13:13, 20-12-2011 | #2048 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Вот здесь выложил подборку статей hb860 по созданию собственных инсталляторов на NSIS.
http://ifolder.ru/27697716 Я с этих материалов начинал |
------- Отправлено: 13:17, 20-12-2011 | #2049 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
Для MUI c использованием странички завершения (финиша) в начале скрипта: |
|
------- Последний раз редактировалось kotkovets, 20-12-2011 в 14:25. Отправлено: 13:25, 20-12-2011 | #2050 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. | ssaram | Программное обеспечение Windows | 406 | 12-02-2022 19:45 | |
WinstyleMonitor .:[все вопросы]:. | Mr dUSHA | Проект WinStyle | 331 | 12-02-2014 13:15 | |
Delphi - Delphi .: [все вопросы] :. | Serega | Программирование и базы данных | 94 | 04-05-2013 18:45 | |
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|