Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

Открыть новую тему     Написать ответ в эту тему

Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

 
NSIS (Nullsoft Scriptable Install System)
Скриптовая система создания инсталляционных пакетов от авторов Winamp

Основные характеристики:
 
  • Размер дистрибутива около 1,5 МБ
  • Наличие в базовом пакете файлов с примерами и подробной справки
  • Чрезвычайная гибкость при создании инсталляций для своих программ
  • Открытый исходный код
  • Использование различных алгоритмов сжатия (ZLIB, BZIP2, LZMA)
  • Наличие различных плагинов
     
    Новейшая версия ветки 2.х: NSIS 2.51 (от 1 апреля 2016 г., статус ветки - Old Releases)
    Новейшая версия ветки 3.х: NSIS 3.10 (от 30 марта 2024 г.)  
     
     
    Ссылки:
    NSIS: страница загрузкирусификатор ветки 2.xx (без гарантии, что подходит!)2.513.10NSIS 3 Pre-releaseNSIS 2 Pre-releaseисходники (SVN)
     
    Дополнительно: [ плагины, примеры и полезности ] • [ форум разрабочиков ] • [ Wiki ]
     
    Редактор для скриптового языка NSIS: [ скачать ] • [ домашняя страница ]
     
    NSIS Unpacker
    7-zip начиная с версии 4.40 beta поддерживает распаковку из некоторых типов инсталляций.  
    Обратите внимание, что 7za не поддерживает распаковку.
     
    Полноценного русификатора пока нет, но кто хочет, может перевести сообщения в исходных текстах NSIS и скомпилировать всё заново – это единственный корректный вариант. Из файлов поддаётся корректному переводу только меню интегратора NSIS, поскольку там HTML, а остальные переводы – это в основном "русификаторы" с непредсказуемыми последствиями применения.
     
    64-х битное развитие идей NSIS. В разработке, аннотация разработчика nsisbi.
     
    Просьба к тем, кто будет править шапку, сначала сверяться с http://nsis.sourceforge.net/Main_Page и не выдавать желаемое за действительное.

  • Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 14:21 06-10-2001 | Исправлено: DimmY, 11:10 31-03-2024
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68

    Цитата:
    Можно убрать текст в стандартной странице компонентов, а вместо неё сделать чекбокс ярлыка на рабочем столе?

    Можно, но совершенно не нужно...
     
    Достаточно или изменить не нужный текст :

    Цитата:
    !define MUI_COMPONENTSPAGE_TEXT_TOP "Текст в верхней части страницы"

    или скрыть

    Цитата:
    !define MUI_COMPONENTSPAGE_TEXT_TOP " "

     
    Чекбокс ярлыка лучше просто добавить к списку компонентов.
     
    ( Если этот чекбокс делать, как дополнительный, то придётся добавить несколько десятков строк кода, + будут некоторые ограничения на расположение(координаты) этого чекбокса. Надо ли ?... )

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 13:14 23-07-2015 | Исправлено: MKN, 13:31 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Надо ли ?...  

    Да чисто из- за любознательности.
    В принципе меня устраивает создание ярлыка и на финишной странице.
     
    Я вот тут с RadioButton борюсь. Решил кастомную страницу замутить. Кнопки сделал, работают, но вот беда - по умолчанию они обе в не нажатом состоянии.
    Как сделать, чтобы одна первая по умолчанию была нажатой?
    Переворошил примеры из справочника, там везде они в отжатом состоянии.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 13:41 23-07-2015 | Исправлено: megane68, 13:42 23-07-2015
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68

    Цитата:
    Кнопки сделал, работают, но вот беда - по умолчанию они обе в не нажатом состоянии.

    В смысле, радиокнопки ?  - SetState

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 13:46 23-07-2015 | Исправлено: MKN, 13:48 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
    Я хочу сделать копию установщика плеера foobar2000 для своей сборки.
    Там после страницы приветствия выбор типов установки Стандартная и Порбативная, реализованная с помощью RadioButton.
    По умолчания выбрана кнопка Стандартной установки. Далее идет страница указания директории.
    RadioButton я сделал, но они обе не отмечены по умолчанию.
    Как то так.... Понятно?
     
    Добавлено:
    http://i71.fastpic.ru/big/2015/0723/a4/29efe62b3365b53fca345292422128a4.png
    http://i71.fastpic.ru/big/2015/0723/a8/26bcf61a8ad7c1c633060e90741f44a8.png
     
    И надпись на кнопке не пойму как жирной сделать.
    P.S. Сборка не содержит самого дистрибутива плеера, чисто конфигурация.
     
    Добавлено:
    Я так понимаю, что на стандартной странице, когда RadioButton реализованы через чекбоксы, отметка реализована так:
    Function .onInit
     StrCpy $1 ${g1o1} ; Group 1 - Option 1 is selected by default
    FunctionEnd
     
    А вот как это будет на кастомной странице?

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 13:50 23-07-2015 | Исправлено: megane68, 14:20 23-07-2015
    Sanch8



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
    Примерно вот-так будет выглядеть:

    Код:
    !include "MUI2.nsh"
     
    Page custom TEST  
    !insertmacro MUI_LANGUAGE "Russian"  
     
    Caption "TEST.exe"
    OutFile "TEST.exe"  
    XPStyle on
     
    Var dlg
    Var RadioButton1
    Var RadioButton2
    Var Font1
    Var Font2
     
    Function TEST
       CreateFont $Font1 "Comic Sans MS" "10" "700"
       CreateFont $Font2 "Comic Sans MS" "14" "700"
       
      nsDialogs::Create 1018
      Pop $dlg
     
    ; тестовые радиобутоны  
       ${NSD_CreateRadioButton} 15u 7u 100u 13u "радиобутон1"
      Pop $RadioButton1  
       SendMessage $RadioButton1 ${BM_SETCHECK} 1 0    ; Отмечен  
       SendMessage $RadioButton1 ${WM_SETFONT} $Font1 1  
       
      ${NSD_CreateRadioButton} 15u 25u 100u 13u "радиобутон2"
      Pop $RadioButton2
      SendMessage $RadioButton2 ${WM_SETFONT} $Font2 1                    
                                                
      nsDialogs::Show
    FunctionEnd
     
    Section main
    SectionEnd


    Всего записей: 125 | Зарегистр. 29-01-2012 | Отправлено: 14:46 23-07-2015 | Исправлено: Sanch8, 15:07 23-07-2015
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68

    Цитата:
    но они обе не отмечены по умолчанию.

    отмечаешь, как я уже говорил - ${NSD_SetState} $RadioButton1 1
    или, как предложил Sanch8 -    SendMessage $RadioButton1 ${BM_SETCHECK} 1 0  
    Результат - одинаковый.   Первый вариант - короче

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 15:15 23-07-2015 | Исправлено: MKN, 15:20 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sanch8
    У ты.... Так получилось.  
    Спасибо!!!
    Теперь буду выяснять какой шрифт используется в NSIS по умолчанию.
     
    Другой вопрос.
    Как на привере этого сценария сделать, чтобы одна группа выполнялась от админа, а вторая с правами пользователя?
     
    Добавлено:

    Цитата:
    отмечаешь, как я уже говорил - ${NSD_SetState} $RadioButton1 1

    Ага, так тоже подходит.
     
    Добавлено:
    Прописано две кнопки и две группы.
    Как выполнить первую группу при выборе первой кнопки, а при выборе второй кнопки - вторую группу?

    Цитата:
     
    Function TEST  
    nsDialogs::Create 1018  
    Pop $Dialog  
     
    ${NSD_CreateRadioButton} 0 25u 100u 10u "Standart installation"
    Pop $RadioButton1
    ${NSD_SetState} $RadioButton1 1
     
    ${NSD_CreateLabel} 20 40u 300u 10u ""  
    Pop $Label
     
    ${NSD_CreateRadioButton} 0 75u 100u 10u "All users or portable"
    Pop $RadioButton2
     
    ${NSD_CreateLabel} 20 90u 300u 10u "."  
    Pop $Label
     
    nsDialogs::Show  
    FunctionEnd
     
    Section "Standart" SEC01
    SectionEnd
     
    Section "All users" SEC02
    SectionEnd
     

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 15:35 23-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    MS Sans Serif

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 18:06 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    MS Sans Serif

    Не... Какой то другой.  
     
    Добавлено:
    Victor_VG
    А кроме Bold есть пожирнее?
    Нужно, чтобы такой как в заголовке был, с такой же жирностью.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 18:16 23-07-2015 | Исправлено: megane68, 18:40 23-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Нет, Bold самый жирный который может сформировать шрифтовой генератор. Я когда-то разбирался что такое шрифт и как он работает и если кратко это комбинация из двух частей: программы формирования символа - шрифтового генератора и базы элементов шрифта зависящей от его природы - у векторных (TTF, OTF, Type 1 - Type 3) шрифтов это набор правил аппроксимации контура отрезками прямых, а у матричных (растровых) шрифтов база это набор битовых матриц с точками образующими контур символа в пределах знакоместа.
     
    И если векторные шрифты легко масштабируются - пересчитываются аппроксимированные фрагменты контура и если необходимо база легко пополняема правилами для любого алфавита, то с матричными дела много хуже - какие матрицы зашиты в базу такие символы мы и сможем вывести на экран или принтер, вдобавок для них надо строить все группы матриц для каждого символа алфавита.  
     
    И если векторные шрифты легко могут содержать всю таблицу UNICODE (65535 языковых таблиц) в одной базе правил, то для матричных (растровых) шрифтов есть вынужденные ограничения на размер этой базы связанные с тем, что:  
     
    1) контур их символа обычно аппаратно формируется видеоплатой т.к. их шрифтовые базы хранятся в её прошивке размер которой ограничен ёмкостью её ПЗУ;
    2) аппаратная поддержка шрифтового генератора реализованная в видеоплате исторически рассчитана на 8-битную таблицу символов (это идёт ещё со времён первых мэйнфреймов с алфавитно-цифровыми дисплеями - с начала 50-х годов 20-го века) и в архитектуру IBM PC перекочевала оттуда без изменения принципа офсетного отображения "символ строится по точкам матрицы знакоместа N*M".


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 18:54 23-07-2015 | Исправлено: Victor_VG, 19:04 23-07-2015
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    megane68
    Tahoma?

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 19:05 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Понял.
    Ну вот смотрите какая разница.
    http://i71.fastpic.ru/big/2015/0723/48/82dff5b3078900c8fa60f96d3a1a2148.png
     
    Добавлено:
    Блин, всё мучаюсь. Нашёл несколько примеров с радиобаттонами, но ни один не подходит.
    Хоть тресни, не понимаю как к кнопкам RadioButton привязать группы?
    Смысл такой - при стандартной установке некоторые файлы распаковываются в Program Files, а некоторые в AppData, а при Portable - все в директорию установки.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 19:10 23-07-2015 | Исправлено: megane68, 19:20 23-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Очень похоже на Tahoma.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 19:38 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    На скрине в моём установщике первая кнопка MS Sans Serif, а на второй кнопке Tahoma. Почти не отличишь.
    Тут именно в жирности дело, то есть в контрастности.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 19:52 23-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Tahoma использует более толстый контур символа, отсюда и всё остальное. Шрифты разных семейств выглядят по разному.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 20:02 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Я так чувствую, что в оригинальном установщике, текст кнопок как- то по другому реализован.
     
    Блин, видимо надо отдохнуть, никак не могу врубиться с привязкой кнопок к группам.
    А ведь наверняка всё просто делается.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 20:20 23-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот ведь, когда некоторое время назад заходил, пропустил сообщение от Sanch8 на страницу с примером:
    http://forum.ru-board.com/topic.cgi?forum=5&topic=0595&start=1257&limit=1&m=1
    Осталось теперь только разобраться.  

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 22:55 23-07-2015 | Исправлено: megane68, 02:51 24-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Фух.....
    Добил таки тип установки!!!
    Огромное СПАСИБО Sanch8 с его примером от sawerx!!!
    Скрин.

    Цитата:
     
    !include "MUI2.nsh"
     
    Page custom nsCustomShow nsCustomLeave
     
    Var Dialog
    Var Label  
    Var RadioButton1
    Var RadioButton2
    Var Font1
    Var Font2
    Var Radio1
    Var Radio2
     
    Function nsCustomShow  
      !insertmacro MUI_HEADER_TEXT "Выберите тип установки:" "стандартный или портативный для всех пользователей."
    nsDialogs::Create 1018  
    Pop $Dialog  
     
    CreateFont $Font1 "Tahoma Bold" "8" "700"
    CreateFont $Font2 "Tahoma Bold" "8" "700"
     
      ${NSD_CreateRadioButton} 0 25u 100u 10u "Standard installation"
    Pop $RadioButton1
      ${NSD_OnClick} $RadioButton1 RadioButton1  
     
    SendMessage $RadioButton1 ${WM_SETFONT} $Font1 1  ; Отмечен
     
      ${NSD_CreateLabel} 20 40u 300u 10u "Установить для текущего пользователя этого компьютера."  
    Pop $Label
     
      ${NSD_CreateRadioButton} 0 75u 100u 10u "All users or portable"
    Pop $RadioButton2
      ${NSD_OnClick} $RadioButton2 RadioButton2  
     
    SendMessage $RadioButton2 ${WM_SETFONT} $Font2 1  
     
      ${NSD_CreateLabel} 20 90u 300u 10u "Установить для всех пользователей этого компьютера."  
    Pop $Label
     
      ${If} $Radio1 == 1
      ${OrIf} $Radio2 == 0
         ${NSD_SetState} $RadioButton1 1
         ${NSD_SetState} $RadioButton2 0
      ${ElseIf} $Radio1 == 0
         ${OrIf} $Radio2 == 1
      ${NSD_SetState} $RadioButton1 0
      ${NSD_SetState} $RadioButton2 1
      ${Else}
         ${NSD_SetState} $RadioButton1 1
         ${NSD_SetState} $RadioButton2 0
      ${EndIf}  
     
    nsDialogs::Show  
    FunctionEnd
     
     
    Function RadioButton1
      Pop $RadioButton1
      ${NSD_GetState} $RadioButton1 $Radio1
      ${NSD_GetState} $RadioButton2 $Radio2
      ${If} $Radio1 = 0
         GetDlgItem $0 $HWNDPARENT 1  
         ${NSD_SetText} $0 "$(^NextBtn)"
      ${ElseIf} $Radio1 = 1  
         GetDlgItem $0 $HWNDPARENT 1  
         ${NSD_SetText} $0 "$(^NextBtn)"  
      ${EndIf}
    FunctionEnd
     
    Function RadioButton2  
      Pop $RadioButton2
      ${NSD_GetState} $RadioButton1 $Radio1
      ${NSD_GetState} $RadioButton2 $Radio2
      ${If} $Radio2 = 0  
         GetDlgItem $0 $HWNDPARENT 1  
         ${NSD_SetText} $0 "$(^NextBtn)"  
      ${ElseIf} $Radio2 = 1  
         GetDlgItem $0 $HWNDPARENT 1  
         ${NSD_SetText} $0 "$(^NextBtn)"  
      ${EndIf}
    FunctionEnd  
     
    Function nsCustomLeave # эта функция отображает ваши действия!
      ${NSD_GetState} $RadioButton1 $Radio1 ;считать с чебокса - если отмечен - переход к странице стандартной установки!
      ${NSD_GetState} $RadioButton2 $Radio2 ;считать с чебокса - если отмечен - переход к странице портативной установки!  
    FunctionEnd  
     
    Section # секция установки файлов!  
      SetOutPath $INSTDIR
    ; установочные файлы в $INSTDIR (стандартная установка)!
      ${If} $Radio1 = 1
      SetOutPath "$APPDATA\$Name"
    ; установочные файлы в $APPDATA (стандартная установка)!
      ${EndIf}
      SetDateSave off  
      ${If} $Radio2 = 1
      SetOutPath $INSTDIR  
    ; установочные файлы в $INSTDIR (портативная установка)!
      ${EndIf}  
    SectionEnd  
     

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 02:09 24-07-2015 | Исправлено: megane68, 03:39 24-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Следующим этапом надо разобраться, чтобы сам установщик выполнялся с правами текущего пользователя, стандартная установка с правами администратора, а портативная опять же с правами текущего пользователя.
    Если кто знает как это реализовать, поделитесь пожалуйста!

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 10:01 24-07-2015
    sevemez

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hi
     
    I need How to make portable with NSIS video tutorial,please help me.

    Всего записей: 19 | Зарегистр. 13-04-2011 | Отправлено: 10:39 24-07-2015
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru