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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как поместить файл в папку пользователя Default User (WinXP/Win2003) и Default (Vista/7/2008/2008R2) ?

    Всего записей: 693 | Зарегистр. 23-10-2003 | Отправлено: 10:32 18-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    spike
     
    Пути прописать относительно системного тома. Для этого используй их получение из Реестра. Нет проблемы, чуть подумать разве что.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:11 18-06-2010
    zeleboba



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, что может значить такая ошибка:
    "Processed 1 file, writing output:
    Adding plug-ins initializing function... Done!
    Error: resolving install function "Nsis2Io" in function "mui.WelcomePre_40.5.9"
    Note: uninstall functions must begin with "un.", and install functions must not
    Error - aborting creation process"
     
    Причем скрипт работал год назад на Vista, кажется. Сейчас нужно запустить его на Windows 7 - выдает ошибку. Подозреваю, что версия NSIS тоже обновилась за это время. Сейчас только скачал свежую.
     
    И вроде бы все функции реально начинаются с un., как и в ошибке написано.

    Всего записей: 151 | Зарегистр. 11-02-2006 | Отправлено: 02:20 24-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zeleboba
     
    В скрипте ошибка. NSIS 2.46 на 7-ке работает. Дальше - смотреть надо.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 05:23 24-06-2010
    zeleboba



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Victor_VG, а можно хотя бы как-то отловить, на какую строку он ругается, если ошибка не дает номера строки?)

    Всего записей: 151 | Зарегистр. 11-02-2006 | Отправлено: 12:01 24-06-2010
    John_White



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

    Цитата:
    Note: uninstall functions must begin with "un.", and install functions must not

    Читаем:
    Примечание: функции удаления должны быть с префиксом "un."
    Делаем соответствующие выводы...
    ЗЫ
    У тебя ошибка в секциях как вариант.

    Всего записей: 221 | Зарегистр. 25-07-2009 | Отправлено: 13:57 24-06-2010
    dimbat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как в nsis реализовать добавление нужных записей в "Stored User Names And Passwords"?  
    (вызывается соответственно rundll32.exe keymgr.dll, KRShowKeyMgr).
    Идея автоматизировать этот процесс созданием диалогового окна "Логин-пароль" для сохранения приличного кол-ва записей на доступ к доменным ресурсам сразу целым списком, чтобы избавить юзера от авторизации на каждом.
    ---
    Пробовал применить net use с ключом /savecred, но позволяет сохранять только без ключа /user. Но необходимо прописать именно юзер/пароль и сохранить перманентно, а не только на сессию. Т.е. не подошло для моей задачи.
     
    Буду признателен за идеи.
    Спасибо.


    ----------
    In Search We Trust

    Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 14:28 24-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dimbat
     
    Как вариант - поместить пары в подобие INI, простой парсер читающий строки в цикле и вызов плагина system  с передачей вызова в keymgr.dll, KRShowKeyMgr либо звать nsExec::Exec "rundll32.exe keymgr.dll, KRShowKeyMgr" с передачей подготовленных параметров например в регистре. Признаком завершения счётчика поставить ну ноль, а число записей писать в отдельную секцию входного файла типа такой структуры:

    Цитата:
    [count]
    "count"="N"
    [data]
    "user_0"="user_name"
    "pasw_0"="pasword"
    .....
    "user_N"="user_name"
    "pasw_N"="pasword"

    А она читается в пол оборота директивой ReadIniStr прямиком в регистр. Остальная логика по месту.

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Цикл пар тут совсем не нужен, ибо логин/пароль будет один и тот же для всех сетевых ресурсов. Я, видимо, невнятно задачу обрисовал просто.
    Т.е. алгоритм будет такой:
    * Юзер вводит в диалоговое окно свой $логин/$пароль
    * Отсылаем в "Диспетчер учетных данных" связку \\server1, домен\$логин, $пароль. Сохраняем.
    * Отсылаем след. связку \\server2, домен\$логин, $пароль. Сохраняем.
    * ... \\server3, домен\$логин, $пароль. Сохраняем.
    ...
    и т.д. до конца списка серверов, которые заранее определены.
     
    Основная задача:

    Цитата:
    вызов плагина system  с передачей вызова в keymgr.dll, KRShowKeyMgr

    или

    Цитата:
    звать nsExec::Exec "rundll32.exe keymgr.dll, KRShowKeyMgr" с передачей подготовленных параметров например в регистре

    Здесь я как раз не силен. Если не затруднит, напишите на примере одного такого цикла передачи и сохранения параметров.
    Спасибо.

    ----------
    In Search We Trust

    Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 01:54 25-06-2010 | Исправлено: dimbat, 02:14 25-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dimbat
     
    Что то типа такого куска алгоритма:
     
      StrCpy $R1 ${N}
      do:
      ReadIniStr $R0 "Servers" $R1
      nsExec::Exec "rundll32.exe keymgr.dll, KRShowKeyMgr, ...."
      IntOp $R1 $R1 - 1
      StrCmp $R1 0 next do

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:39 25-06-2010
    Igimon

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите какие ключи поддерживает Uninstall.exe интересует прежде всего ключ для тихого удаления программы без всяких окошек.

    Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 06:08 27-06-2010
    dimbat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Я не подготовку параметров имел ввиду. Я спрашивал о возможностях nsis или плагинов в плане взаимодействия с другими окнами. Ведь придется не только вызывать "Stored User Names And Passwords", а еще и эмулировать нажатие кнопки "Добавить" и вносить в нужные поля свои данные и тд. Или каким-то иным способом передавать/сохранять туда данные, подготовить которые как раз не проблема.
    Или я в принципе слишком много хочу от nsis?

    ----------
    In Search We Trust

    Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 10:09 27-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dimbat
     
    Это NSIS умеет, но тут придётся или работать через интерфейс консоли, либо прямо работать со структурами данных WinAPI. Вызов плагина nsExec::Exec - это простейший способ работы с консолью. Вызов WinAPI через плагин system - другой путь достижения цели. Скелет я дал, а полностью расписать код до строчки у меня сейчас нет времени. Коли что - продскажу, но основной источник данных - документация. Все ответы на поставленные вопросы там есть.
     
    Igimon
     
    Просто код пишем не имеющий вызовов 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 | Отправлено: 11:28 27-06-2010 | Исправлено: Victor_VG, 11:32 27-06-2010
    Igimon

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

    Цитата:
    Просто код пишем не имеющий вызовов MUI и скрывающий окно анинсталлера. Только можно при этом наловить море ошибок и тумаков от разъярённых пользователей. Так что, тут надо тыщи раз подумать...

     
    Да сам инсталлятор (программа) уже создана и не мной, и проинсталлирована в системе, мой инсталлятор ищет в реестре ключ на предмет установлена ли данная программа или нет, если да, то выводит запрос на её удаление, далее запускает Uninstall.exe и ждет, как только Uninstall.exe закончит свою работу установка моего инсталлятора продолжится...
     
    Но есть проблема, точнее две, первая при де-инсталляции появляется окно и.т.д по опыту InnoSetup знаю что там унисталлер поддерживает ключ /silent при котором нет никаких окошек, вроде - вы и вправду собираетесь меня удалить... Поэтому вопрос мой поддерживает ли NSIS подобный ключ типа /silent по умолчанию?
     
    И вторая проблема, при запуске Uninstall.exe мой инсталлятор ждет пока унисталлер сделает свое дело и закроется, но Uninstall.exe запустившись копирует себя в %Temp%\~nsu.tmp\_.exe после чего зам Uninstall.exe закрывается, соответственно мой инсталлятор продолжает установку дальше, но предыдущая программа еще даже не удалилась, висит окошко с вопросом  - вы правда хотите меня удалить...
     
    Вот собственно и за этого и требуется тихая де-инсталляция.

    Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 13:32 27-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Igimon
     
    Ну, так с этого и надо было начинать. Такую задачу я решаю иным приёмом - в скрипте установки в его начале, до копирования файлов прописываю список удаления файлов, каталогов и настроек и ключ /silent мне становится не нужен. Это проще чем запускать чужой деинсталлятор через nsExec::Exec и ждать пока тот отработается. Хотя возни часто с кодом поболее будет, но можно использовать команду RMDir /r удаляющую целые деревья каталогов вместо чистки отдельных файлов. И настройки, коли в Реестре или файлах пачками удалять не сложно. Потому и эта возможность мне ни разу не потребовалась.

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Igimon
    Выдержка из мануала:
    ... if this is set to 'normal' and the user runs the uninstaller with /S on the command line, it will behave as if SilentUnInstall 'silent' was used.
    Т.е. если деинсталлятор был создан в обычном режиме, то запуск его с ключом /S всё равно переведет его в "тихий режим". Вроде так, если не ошибаюсь.
    Хотя от диалоговых окон этот ключ вряд ли избавит, если только в коде для silent не было прописано MessageBox's /SD.
    Вот здесь подробнее.
     
    Victor_VG

    Цитата:
    Вызов WinAPI через плагин system

    Нашел таки способ через nsExec, в обход всех геморроев с окнами - cmdkey. Для xp правда придется его из сервера2003 скопировать, но результат идеальный. То, что мне и требовалось
    Пошел код ваять.

    ----------
    In Search We Trust

    Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 16:14 27-06-2010 | Исправлено: dimbat, 16:27 27-06-2010
    Igimon

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

    Цитата:
    Такую задачу я решаю иным приёмом - в скрипте установки в его начале, до копирования файлов прописываю список удаления файлов, каталогов и настроек и ключ /silent мне становится не нужен.

     
    Наверно так бы и поступил....
     
    Однако с ключем /S все прошло на ура, программа тихо удалилась без каких либо окон.
     
    dimbat

    Цитата:
    Выдержка из мануала:

     
    Респект!

    Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 17:19 27-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Igimon
     
    Ну, мне чаще приходится этот приём использовать при обновлении проектов, а там полное удаление не всегда нужно.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 21:09 27-06-2010
    Serge2005

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем доброе утро!
    Скажите, пожалуйста, можно ли как-то сконвертировать файл установки NSIS (vlc.win32.nsi) в файл установки InnoSetup?
    Код

    Всего записей: 554 | Зарегистр. 11-02-2006 | Отправлено: 09:17 30-06-2010 | Исправлено: Serge2005, 09:24 30-06-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Serge2005
     
    Я таких конвертеров не встречал, да и смысла в этом не вижу - NSIS это архитектура C++ и C-подобный входной язык со всеми его особенностями, как бы его не называли, Inno Setup - это архитектура Pascal, да, с относительно простым входным синтаксисом, но зато перекладывающая на Inno Setup Pascal Script все мало мальски сложные для неё задачи начиная с задачи уровня плюс - минус - умножить - разделить и кончая любой логикой или задачами сложнее простого копирования файлов. Без своего Inno Setup Pascal Script среда Inno Setup почти ничего не умеет, только хорошо рюшечки рисует, а вся её логика жёстко зашита в коде её интерпретатора который она каждый раз тащит с собой поскольку иначе работать неработоспособна. И его размер без сжатия чем-то типа UPX достаточно приличный до сих пор - под 800 Кб, да и с внешним Inno Setup Pascal Script-файлом сильно много ума у неё не появляется так как Inno Setup - это инструмент созданный для решения простых задач, и более он ничего не умеет. Но если его сжать, то при распаковке бинарного пакета помять нужная для этого обычно скромно начинает увеличиваться на десяток - другой Мб, ну это не считая некоторых других особенностей типа сложных процедур работы с драйверами и демонами, семафорами, переходами - этих попросту говоря у неё и в зачатке нет и т.д. В итоге, я в своё время посчитал её для моих задач инструментом не лучшим и отказался от неё в пользу NSIS. Потому я и высказался о поставленной задаче как о неверно на мой взгляд сформулированной, а в данной случае просто просто не того направления мыслей.

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