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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    temp0001
     
    А оно в таком виде надо? Можно конечно, но придётся крепко повозится. Тут проще использовать архиватор и им нарезать готовый пакет в SFX.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 02:40 04-01-2010
    temp0001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Надо т.к. хочу создать инсталлятор для игрушки которая весит 5.5гб(а в NSIS помоему ограничение на 2ГБ да и в FAT32 вроде ограничение на 4ГБ на один файл) sfx делать не хочу т.к. хочу чтобы был красивый инсталлятор

    Всего записей: 35 | Зарегистр. 12-12-2005 | Отправлено: 02:58 04-01-2010
    Q_Dmitry

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Дурацкий вопрос по функции CreateShortCut...
    Хочу прикрутить собственную иконку к ярлыку на рабочем столе. Пишу
    CreateShortCut "$SMPROGRAMS\$StartMenuGroup\Proga $(^Name1).lnk" $INSTDIR\My Folder\Proga.exe .\images\icon.ico (и прочие вариации - ничего не помогает)
    Где я неправ?
     
     
    Добавлено:
    Проблема с CreateShortCut решена...я жестко тупанул)))
    Если кому интересно, верный код...
    CreateShortCut "$DESKTOP\Proga.lnk" "$INSTDIR\Proga.exe" "" "$INSTDIR\resources\icon.ico"
    Естессно, что при этом путь к иконке должен совпадать с путем, в котором лежит картинка после установки файла (в этом и был трабл).

    Всего записей: 1 | Зарегистр. 06-01-2010 | Отправлено: 17:47 06-01-2010
    tatuich



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

    Код:
    !include nsdialogs.nsh
    !include logiclib.nsh
    !include winmessages.nsh
     
    Name Test
    OutFile setup.exe
     
    XPStyle on
     
    Var dialog
    Var hwnd
     
    Page custom nsDialogsPage
    Page instfiles
     
    Function nsDialogsPage
     
        nsDialogs::Create 1018
            Pop $dialog
     
        ${If} $dialog == error
            Abort
        ${EndIf}
     
     
        ${NSD_CreateRadioButton} 0 0 100% 6% "Variant 1 (by default)"
            Pop $hwnd
            ${NSD_AddStyle} $hwnd ${WS_GROUP}
            ${NSD_Check} $hwnd
     
        ${NSD_CreateRadioButton} 0 33% 100% 6% "Variant 2"
            Pop $hwnd
     
        ${NSD_CreateRadioButton} 0 66% 100% 6% "Variant 3"
            Pop $hwnd
     
        ${NSD_CreateLabel} 0 8% 100% 25% "This is a$\r$\ndescription$\r$\nfor variant 1"
            Pop $hwnd
     
        ${NSD_CreateLabel} 0 41% 100% 25% "This is a$\r$\ndescription$\r$\nfor variant 2"
            Pop $hwnd
     
        ${NSD_CreateLabel} 0 74% 100% 25% "This is a$\r$\ndescription$\r$\nfor variant 3"
            Pop $hwnd
     
        nsDialogs::Show
     
    FunctionEnd
     
    Section
     
        DetailPrint "All finished"
     
    SectionEnd

     
    Выше имеется код. Подскажите, как сделать так, чтобы от одного выбранного из трех RadioButton зависело выполнение того или иного моего кода в Section (она же по идее выполняется при установке файлов) после моей кастом-страницы.
    Т.е. у меня в установленный ini-файл в уже имеющуюся там строку должен писаться (изменяться - по умолчанию там уже стоит 1) номер выбранного варианта (1,2,3).

    Всего записей: 319 | Зарегистр. 20-11-2007 | Отправлено: 08:13 09-01-2010
    dracosha



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем привет! Я новичок.
    Столкнулся с одной проблемкой...
    Мне нужно что бы при выборе компонента 1, стали активными для выбора компонент 2 компонент 3 и компонент 4, и в тоже время компоненты 2, 3 и 4 не должны выбираться 1 из 3, (т.е. что бы можно было поставить галочки на все компоненты 2 ,3 и 4). Если компонент 1 не выбран значит компоненты 2, 3 и 4 должны быть неактивными

    Код:
    Section /o "test1" section1
    SectionEnd
    Section /o "test2" section2
    SectionEnd
    Section /o "test3" section3
    SectionEnd
    Function .onSelChange
     SectionGetFlags ${section1} $1
     SectionGetFlags ${section2} $2
     SectionGetFlags ${section3} $3
    StrCmp $1 "1" 0 N1
     SectionGetFlags ${section2} $0
     IntOp $0 $0 & ${SECTION_OFF}
     SectionSetFlags ${section2} $0
     SectionGetFlags ${section3} $0
     IntOp $0 $0 & ${SECTION_OFF}
     SectionSetFlags ${section3} $0
    N1:
    StrCmp $2 "1" 0 N2
     SectionGetFlags ${section1} $0
     IntOp $0 $0 & ${SECTION_OFF}
     SectionSetFlags ${section1} $0
     SectionGetFlags ${section3} $0
     IntOp $0 $0 & ${SECTION_OFF}
     SectionSetFlags ${section3} $0
    N2:
    StrCmp $3 "1" 0 N3
     SectionGetFlags ${section1} $0
     IntOp $0 $0 & ${SECTION_OFF}
     SectionSetFlags ${section1} $0
     SectionGetFlags ${section2} $0
     IntOp $0 $0 & ${SECTION_OFF}
     SectionSetFlags ${section2} $0
    N3:
     FunctionEnd

    Товарищ K.A.V. очень помог мне этим примером, но я этот пример использовал для других компонентов как самый настоящий скрипт. Смог догадаться только в переименовании секций на свои имена
    Народ! Пожалуйста! Растолкуйте для новичка весь этот скрипт... Чтоб было понятно что тут за что отвечает.

    Всего записей: 246 | Зарегистр. 14-09-2007 | Отправлено: 23:44 26-01-2010 | Исправлено: dracosha, 00:07 27-01-2010
    coptus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не могу скомпилить nsis под FreeBSD 6.
    У когонибудь получалось?  
    Ставлю так
    scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no PREFIX=/test3 install-compiler  
    test3 это куда ставиться будет? у меня такой папки по идее нет, что ставить знаю не особо, но ошибка пока даже не в этом
     
    Вот что выдает  
     
    Checking for C library user32... (cached) no
    Checking for C library pthread... (cached) yes
    Checking for C library iconv... (cached) no
    Checking for C library dl... (cached) no
    Checking for C library gdi32... (cached) no
     
    Видим, что библиотек нет, верно?
    И вот далее пошло падение
     
    scons: done reading SConscript files.
    scons: Building targets ...
    g++ -o build/release/makensis/build.o -c -Wno-non-virtual-dtor -Wall -O2 -m32 "-DNSISCALL= __attribute__((__stdcall__))" -D_WIN32_IE=0x0500 -Ibuild/release/config Source/build.cpp
    In file included from Source/build.cpp:24:
    Source/util.h:26:21: iconv.h: No such file or directory  
     
     
    iconv и libiconv стоят  
    Помогите, пожалуйста

    Всего записей: 3 | Зарегистр. 09-02-2010 | Отправлено: 21:41 09-02-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    coptus
     
    Wine HQ и зависимые пакеты нужны. Да и под 6-й вряд-ли будет работать без сбоев. Минимум 7-ка, лучше 8-ка.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 02:26 10-02-2010
    coptus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А теперь вот что. Набираю
    alivelab# scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no APPEND_LIBPATH="/usr/local/lib" APPEND_CPPPATH="/usr/local/include"
     
    Получаю
    .o -L/usr/local/lib -lpthread -liconv
    scons: done building targets.
    Вроде всё окей
    Дальше набираю
    alivelab# scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no APPEND_LIBPATH="/usr/local/lib" APPEND_CPPPATH="/usr/local/include" install
    Но получаю
    scons: done reading SConscript files.
    scons: Building targets ...
    scons: Nothing to be done for `INSTALL'. scons: done building targets.
    И чего теперь делать? КАк скомпилить то? А команду makensis откуда потом набирать? из любого места или из каталога где nsis стоять будет?

    Всего записей: 3 | Зарегистр. 09-02-2010 | Отправлено: 15:49 10-02-2010
    vadimsva



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

    Цитата:
     [русификатор (без гарантии, что подходит!) ]


    Цитата:
    Полноценного русификатора пока нет, но кто хочет, может перевести сообщения в исходных текстах NSIS и скомпилировать всё заново - это единственный корректный вариант! Из файлов поддаётся корректному переводу только меню интегратора NSIS, поскольку там HTML, а остальные переводы это в основном "русификаторы" с непредсказуемыми последствиями применения.

     
    Кто это вообще написал? Мой русификатор вполне нормально работает и переведено все что нужно.
     
    Русификатор для 2.хх (2.46) - обновленный
    http://vadimsva.ucoz.org/NSIS_2.xx_rus.7z
    http://narod.ru/disk/17779078000/NSIS_2.xx_rus.7z.html
     
    Исходники на русском
    http://vadimsva.ucoz.org/nsis-2.46_rus-src.tar.bz2
    http://narod.ru/disk/17779140000/nsis-2.46_rus-src.tar.bz2.html

    Всего записей: 103 | Зарегистр. 10-07-2007 | Отправлено: 06:12 11-02-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vadimsva
     
    Верно. И у меня в пакете меню переведено и подогнано полностью. Остальное специально не переводил - ведь в нём идёт IDE HM NIS 2.0.3 которую я постоянно доделываю. Кому надо, могут взять в Developer_tools  с http://filekeeper.org/download/victorvg/ и NSIS, и GCC 4.4.1 TDM-2 build 1.0.3. Пользуйтесь. Будут ошибки - поправим. В чём проблемы, то? Не вижу проблем.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 12:41 11-02-2010
    XCV81



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть такая задачка: написать скрипт который (после компиляции) будет запускать другой инсталятор nsis в тихом режиме и записать лог действий (не своих, а тех которые делает запускаемый инсталятор) в файл. С помощью других хороших людей сваял такой скриптик:
    ;Text/Registry definitions
    !define PRODUCT_NAME "Nsis ïåðåõâàò"
    !define PRODUCT_VERSION "1.0"
    ;includes
    !include "MUI.nsh"
    !include "FileFunc.nsh"
    !include "LogicLib.nsh"
    SetCompressor /SOLID lzma
    ; MUI Settings
    !define MUI_ABORTWARNING
    ;!define MUI_ICON "ico.ico"
    ; Welcome page
    !insertmacro MUI_PAGE_WELCOME
    !insertmacro MUI_PAGE_INSTFILES
    ; Finish page
    ;!insertmacro MUI_PAGE_FINISH
    ; Language files
    !insertmacro MUI_LANGUAGE "Russian"
    !define LVM_GETITEMCOUNT 0x1004
    !define LVM_GETITEMTEXT 0x102D
    Name "${PRODUCT_NAME}"
    Caption "Ïåðåõâàò"
    OutFile "${PRODUCT_NAME}.exe"
    Function DumpLog
      Exch $5
      Push $0
      Push $1
      Push $2
      Push $3
      Push $4
      Push $6
    FindWindow $0 "#32770" "заголовок окна устанавливаемого инсталятора"
      GetDlgItem $0 $0 1016
      StrCmp $0 0 error
      FileOpen $5 $5 "w"
      StrCmp $5 0 error
        SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
        System::Alloc ${NSIS_MAX_STRLEN}
        Pop $3
        StrCpy $2 0
        System::Call "*(i, i, i, i, i, i, i, i, i) i \
          (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
        loop: StrCmp $2 $6 done
          System::Call "User32::SendMessageA(i, i, i, i) i \
            ($0, ${LVM_GETITEMTEXT}, $2, r1)"
          System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
          FileWrite $5 "$4$\r$\n"
          IntOp $2 $2 + 1
          Goto loop
        done:
          FileClose $5
          System::Free $1
          System::Free $3
          Goto exit
      error:
        MessageBox MB_OK error
      exit:
        Pop $6
        Pop $4
        Pop $3
        Pop $2
        Pop $1
        Pop $0
        Exch $5
    FunctionEnd
    Section "Inst"
     SetOutPath "$TEMP\files\"
     File /r "Files.exe"
    Execwait "$TEMP\files\files.exe /S"
    SectionEnd
    Section "-POST"
    push "$DESKTOP\LOG.log"
    Call DumpLog
    SectionEnd

    но он не работает... может поможет кто подправить?

    Всего записей: 432 | Зарегистр. 03-10-2007 | Отправлено: 10:46 23-02-2010
    juvaforza

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    У вас есть конкретные замечания к переводу vadimsva на предмет некорректной работы? Насколько я понимаю, все файлы собраны из своих ресурсов, а не являются примером "русификаторов".

    Всего записей: 2895 | Зарегистр. 26-11-2005 | Отправлено: 21:38 28-02-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    juvaforza
     
    Есть только одно - я считаю, что в таких случаях когда мы используем программу для нескольких языков не надо менять её ресурсы. А сделать для неё внешний языковый модуль с динамической подгрузкой по моему оптимальное решение задачи в такой ситуации. Это лично моё мнение, и я его никому навязывать не хочу. Но, мне думается так несмотря на большую сложность решения мы имеем меньше шансов получить сбой.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 15:42 02-03-2010
    jekov



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите,пожалуйста,где копать для вставки своего пароля в скрипте http://nsis.sourceforge.net/ADD_"Verify_your_serial_number"_dialog_to_your_Installer_by_ROHIT  - видимо где то в {NSISDIR}\Contrib\Modern UI ,поскольку !include "MUI.nsh" ,чего бы не меняя проходит тока через пароль: Verify your serial number
    Не так стоят дела тут,где все понятно для меня http://nsis.sourceforge.net/Complex_validating_of_InstallOptions_user_input
    Спасибо!

    Всего записей: 1272 | Зарегистр. 11-09-2005 | Отправлено: 12:57 12-03-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил свою библиотеку ProcLib до версии 2.5.  
     
    Что добавилось?  
     
     - добавил макрос MinVer для анализа версии операционной системы и её сравнения с минимально заданной. Если версия ОС равна или выше минимально заданной, то MinVer вернёт 1, иначе вернёт 0.
     
    Применение простое - вызываем его тогда, когда надо выполнить как-то операции только если версия ОС не ниже чем заданная, а используя инверсную логику по отношению к интерпретации его кода возврата, можно его применять и для проверки условия не "Версия ОС не выше чем", но тогда Ваш код должен срабатывать по значению возвращаемой переменной равной 0.
     
    Вызов:
     
    в заголовоке скрипта должно стоять
     
    !include "ProcLib.nsh"
    <Ваш код>
    ${MinVer} <порог> <переменная>  
    <Ваш код>
    порог две цифры номера версии, например для Win2k - 50, для WinXP - 51, для Vista - 60, ...
    <переменная> - любая переменная куда будет помещён ответ, кроме регистров $R0 - $R2
     
    Полноценное обновление будет, но чуть позже по времени - есть срочные дела.
     
    jekov
     
    Вот в этом углу смотри: ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" ReserveFile "test.ini" - менно там и прячется проверяемый пароль. А вот MUI как оболчка в данном случае тупиковый путь для анализа примера.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 13:24 12-03-2010 | Исправлено: Victor_VG, 13:28 12-03-2010
    jekov



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Victor_VG
    в ini отсуствует Verify your serial,меняя значения в  ini не меняют установку пароля,хотя и сам автор утверждает то же самое?!

    Всего записей: 1272 | Зарегистр. 11-09-2005 | Отправлено: 14:26 12-03-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jekov
     
    Честно скажу, не присматривался - сейчас просто времени на это нет. Глянул "в дагональ", нашёл этот кусок, показал на него. Но, в принципе есть плагины отвечающие за ввод-вывод паролей серийников. По моему Password, посмотри их там же в списке плагинов.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 15:07 12-03-2010
    jekov



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Знатоки,посоветуйте какой нибудь бесплатный способ криптирования типа PassDialog,скомпилировать собственную библиотеку алгоритма.Спасибо!

    Всего записей: 1272 | Зарегистр. 11-09-2005 | Отправлено: 22:03 14-03-2010 | Исправлено: jekov, 22:49 14-03-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jekov
     
    В плагинах смотри, там что-то помню было.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 22:43 14-03-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите пожалуйста,как реализовать выбор одного компонента исключающий выбор других компонентов в пределах одной секционной группы компонентов? т.е когда отметишь группу А, отмечаются два компонента или все, а нужно только один компонент или снять все компонеты в пределах одной секционной группы компонентов. скрипт:
     
    !include "Sections.nsh"
     
    Name "One Section"
    OutFile "one-section.exe"
    RequestExecutionLevel user
     
    Page components
     
    SectionGroup /e A
    ;file
    Section "Компонент №1" ID_1
    SectionEnd
     
    Section /o "Компонент №2" ID_2
    SectionEnd
     
    Section /o "Компонент №3" ID_3
    SectionEnd
     
    SectionGroupEnd
     
    Function .onSelChange
     
    ; Выбор между компонентам 1, 2, 3
      !insertmacro StartRadioButtons $1
        !insertmacro RadioButton ${ID_1}
        !insertmacro RadioButton ${ID_2}
        !insertmacro RadioButton ${ID_3}
      !insertmacro EndRadioButtons
     
    FunctionEnd
     
    Function .onInit
     
      StrCpy $1 ${ID_1}
     
    FunctionEnd

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 15:31 19-03-2010
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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