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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FanIT
     
    Ясно. Тогда стоит поколдовать. Я в таких случаях просто ставлю переменные семафоры и в .onInit обнуляю их, а в начале скрипта вешаю группу не именованных секций с возможностью выбора компонент и после в них по срабатываю чекбокса ставлю семафор в "1" после чего проверяю через обычный StrCmp факт их установки. Такая логика работает надёжно, да и отследить ошибку тут много проще чем в LogicLib.

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 13:06 23-04-2014
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FanIT
    надо : ${if} $cbDesktopState == 1
    бла-бла-бла

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 17:36 23-04-2014
    AlekseyPopovv



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, подскажите как шрифты скопировать в "C\Windows\Fonts"? Или как тихо установить?
    CopyFiles /SILENT "$EXEDIR\${APPDIR}\20db\*" "$FONTS" - не копируется.

    Всего записей: 266 | Зарегистр. 25-03-2013 | Отправлено: 07:37 08-05-2014
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlekseyPopovv
     
    В простом случае можно так :

    Код:
     
    ; копирование всех нужных шрифтов из папки Fonts
    SetOutPath "$FONTS"
    File /r "Путь\Fonts\*.*"
    ; регистрация в ОС каждого файла шрифта
    StrCpy $0 "myFont1.ttf"
    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" "здесь - полное имя шрифта" "$0"
    System::Call "GDI32::AddFontResource(t) i ('$0') .s"

     
    Скомпили скрипт и тихо запускай с ключом /S
     

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 11:14 08-05-2014 | Исправлено: MKN, 11:19 08-05-2014
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlekseyPopovv
     
    Для этого нужны права админа.

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 11:24 08-05-2014
    AlekseyPopovv



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

    Всего записей: 266 | Зарегистр. 25-03-2013 | Отправлено: 08:15 09-05-2014
    FanIT

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет! Я опять к вам за помощью. Можно ли в nsis установить драйвер? Есть только файл driver.sys и записи о нем в реестре.

    Всего записей: 69 | Зарегистр. 27-12-2013 | Отправлено: 17:36 14-05-2014
    MKN



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

    Цитата:
    Можно ли в nsis установить драйвер?

    Вряд ли, если нет сопутствующего inf файла. И установка драйверов в NSIS одним лишь кодом, дело не благодарное... Горожа и гемор, не стоящие того... Обычно используют, при установке классических драйверов (твой к ним не относится), сторонние утилиты, типа dpinst.

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 18:45 14-05-2014
    FanIT

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
    Ясно. Спасибо. inf файле нет.

    Всего записей: 69 | Зарегистр. 27-12-2013 | Отправлено: 19:54 14-05-2014 | Исправлено: FanIT, 19:57 14-05-2014
    Victor_VG



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

    Цитата:
    Можно ли в nsis установить драйвер? Есть только файл driver.sys и записи о нем в реестре.

    Можно. Плагином NsSCM который не нуждается в inf-файле. Сам так драйвера часто ставлю. Главное правильно указать ему параметры. inf-файл нужен только для системного установщика, а плагин напрямую работает с SCM и в нём не нуждается.

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 14:26 15-05-2014
    MKN



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

    Цитата:
    Плагином NsSCM

    Плагину более 8 лет и на практике, далеко не всякий драйвер с ним устанавливается , плюс ко всему плагин не работает в X64 ОС... Недоразумение одним словом...

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 15:10 15-05-2014 | Исправлено: MKN, 15:12 15-05-2014
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
     
    NsExec и scm. Не вижу сложности. Другое дело если "недоразумение" это как мне сказал один малый "Всё, что не рекомендовано Mикрософт как официальный инструмент не имеет права на существование!". Они вот мне так же прислали "официальный инструмент" - Update 2826040 for Office 2013: May 13, 2014 для ... DEC OSF/1 AXP и FreeBSD 10 AMD64. А зачем он мне там нужен? На демонёнке у меня Либра 4.2.4 стоит, а на OSF/1 вообще офисного пакета нет за ненадобностью, но M$ в своём ответе сказала "Как не нужно!? У всех стоит наш лучший в мире Офис 2013, значит и вам это обновление жизненно необходимо!".

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 15:34 15-05-2014 | Исправлено: Victor_VG, 15:36 15-05-2014
    FanIT

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня опять вопрос. Понадобилось мне при удалении программы сначала завершить ее процесс. В справке я нашел то, что нужно ProcessFunc.nsh. Но почему-то nsis на него ругается.
     
    Вот код:
    ${KillProcess} "process.exe" $R0
     
    Компилятор выдает такое:
    Error in macro _KillProcessCall on macroline 2

    Всего записей: 69 | Зарегистр. 27-12-2013 | Отправлено: 18:01 18-05-2014
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FanIT
     
    Правильно, сначала надо в инклюде подключить его хидеры. Но, лучше воспользоваться NsProcess. Пишем в хидере скрипта:
     
    !include nsProcess.nsh
     
    а после  ${nsProcess::CloseProcess} "process.exe" $R0
     
    выгрузка либы ${NsProcess::Unload}

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 20:57 18-05-2014
    FanIT

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Конечно я подключил в инклюдах. Это само собой. nsProcess я использовал. Но мне надо, чтобы сначала выгрузился процесс, а уж потом удалялась папка. А в ProcessFunc есть функция ProcessWait. Или в nsProcess есть что-то подобное?

    Всего записей: 69 | Зарегистр. 27-12-2013 | Отправлено: 21:38 18-05-2014
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FanIT
     
    Есть, и есть проверка результатов вызова. Прочтите его описание, особенно для версии 1.6.

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 21:56 18-05-2014
    FanIT

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

    Всего записей: 69 | Зарегистр. 27-12-2013 | Отправлено: 22:35 18-05-2014
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FanIT
     
    Не за что. Код проверки результатов возврата есть в моей ProcLib (в Update для NSIS 2.46). Если что - перекину когда с ремонтом закончу. Осталось самое сложное - водворить все машины на место и подключить кабели кластера. Сменить сгоревший БП дело пяти минут.

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 02:03 19-05-2014
    0utC4St



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто скажет в чём подвох и как выйти из ситуации стандартными средствами?
    Исходим из того, что в реестре в этом месте ЕСТЬ строка вида: C:\Program Files\WinRAR\

    Код:
    ...
    RequestExecutionLevel admin
     
    Function .onInit
      var /Global Path
      StrCpy $Path ""
    FunctionEnd
     
    Section "Main"
        ReadRegStr $Path HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver" "InstallLocation"
        MessageBox MB_OK|MB_ICONSTOP "$Path"  
    SectionEnd
     

     
    Код на Win 7 x86 выполняется и выдаёт результат, а на Win 7 x64 выполняется и показывает пустоту ($Path равна "")
     
    з.ы. При этом "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver" не существует.


    ----------
    Unchecky - скажи нет Adware на этапе инсталляции

    Всего записей: 2221 | Зарегистр. 26-12-2006 | Отправлено: 22:54 23-05-2014 | Исправлено: 0utC4St, 23:05 23-05-2014
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0utC4St
     
    Есть такой хитрый подвох и он связан с виртуализацией Реестра. Тут лучше использовать встроенные в NSIS инструменты - определить в хидере $InstallDirRegKey и через неё читать значение. У меня сейчас нет под руками х64 винды и экспериментально я проверить код не могу, но про сию бяку я знаю.

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

    Всего записей: 33232 | Зарегистр. 31-07-2002 | Отправлено: 23:47 23-05-2014
    Открыть новую тему     Написать ответ в эту тему

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