Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :.

Закрытая тема
Настройки темы
[архив].: NSIS - все вопросы :.

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: volk1234
Дата: 09-12-2012
Описание: перевод темы в архив.
Тема закрыта!
Лимит страниц.
Продолжение тут:
.: NSIS - все вопросы :. часть 2.
Старая шапка:
читать дальше »

Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения.

Описание:
читать дальше »
NSIS (Nullsoft Scriptable Install System) - профессиональная система для создания инсталляторов в среде Windows с октрытым исходным кодом. При своем малом размере система очень гибкая, и при с широкими возможностями. Генерируемый ею инсталлятор также имеет очень маленький размер и идеально подходит для распространения продукта через Интернет.


Текущая версия: 2.46 от 6 декабря 2009 года
Скачать | Архив сборок версии 2 | Архив сборок версии 1

ВНИМАНИЕ! Созданный в NSIS инсталлятор является ANSI-приложением. Есть возможность использовать UNICODE-сборку системы, но при этом ваши дистрибутивы не будут работать в ANSI-системах, таких, как Windows 9x. Для загрузки UNICODE-сборки системы посетите сайт: http://www.scratchpaper.com/

ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов:
Справочник по NSIS - создан силами нашего сообщества.
Руководство пользователя. Перевод – Поляков А.В, зеркало

Документация

Утилиты разработчика
Расширение функциональности
читать дальше »

Плагины и полезности к NSIS: http://nsis.sourceforge.net/Category:Plugins

Интерфейс Venis GUI: http://www.spaceblue.com/products/venis
Интерфейс ExperienceUI GUI http://experienceui.xx0r.info/oldeng...erienceui/home
Пример:


Интерфейс SkinCrafter Plugin - http://www.skincrafter.com/
Пример:

Инструкция по использованию от K.A.V.

Примеры скриптов на нашем форуме
Скрипт NSIS для перепаковки AIMP2+Сборки
Тема для Notepad++(пример парсинга XML)

Достоинства
читать дальше »


◦ Очень маленький размер установочного блока (около 34 Кбайт)
◦ zlib, bzip2 и LZMA-сжатие
◦ Гибкая система скриптов (спецально разработанная для инсталляторов)
◦ Поддержка многоязычности, точнее 53 языка, есть возможность ввода нового языка
◦ Поддержка плагинов
◦ Скрипт Препроцессор
◦ Создание Web-инсталляторов

Ещё немного полезной информации:
читать дальше »

▫ История создания установщика

NSIS создан как альтернатива InstallShield, предназначенного для коммерческих продуктов.

NSIS был создан для распространения Winamp. Он базируется на предыдущем продукте Nullsoft — PiMP (plugin Mini Packager), иначе известным как SuperPiMP. После версии 2.0a0, проект был перемещён на SourceForge.net, где к работе над ним присоединились и сторонние разработчики. NSIS 2.0 был выпущен в свет 2 года спустя.

NSIS версии 1 был очень похож на классический Windows Installer, но он был более управлемым с помощью скриптов и поддерживал другие форматы сжатия. NSIS версии 2 поддерживает новый графический интерфейс пользователя, LZMA-сжатие, многоязычность и имеет хорошую систему плагинов.

Версия 2.01 была первой версией, поддерживающей компиляцию на любой из POSIX-платформ. Это позволило создавать Windows-инсталляторы на GNU/Linux и FreeBSD без использования эмулятора Wine. На данный момент поддерживается компиляция только для Windows.

▫ Описание

Компилятор NSIS — программа makensis — компилирует скрипты в исполняемый код. Каждая строчка скрипта содержит одну команду. Пример:
Код: Выделить весь код
 # Пример скрипта
 Name "Example1"
 OutFile "example1.exe"
 InstallDir "$PROGRAMFILES\Example1"
 Page Directory
 Page InstFiles
 Section
   SetOutPath $INSTDIR
   File ..\makensis.exe
 SectionEnd

Modern User Interface

В версии 2.0 был введён новый графический интерфейс пользователя, названный Modern UI (MUI). MUI очень похож на интерфейс мастеров, он поддерживает splash screen, выбора языка, выбор компонентов для установки и более широкие возможности настройки по сравнению со своим предшественником. Пример:
Код: Выделить весь код
 # Пример скрипта с Modern UI
 !include MUI.nsh
 Name "Example 2"
 OutFile Example2.exe
 !insertmacro MUI_PAGE_WELCOME
 !insertmacro MUI_PAGE_LICENSE "license.rtf"
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_COMPONENTS
 !insertmacro MUI_PAGE_INSTFILES
 !insertmacro MUI_PAGE_FINISH
 !insertmacro MUI_LANGUAGE "English"
 !insertmacro MUI_LANGUAGE "German"
 !insertmacro MUI_LANGUAGE "French"
 Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
 SectionEnd
NSIS может быть расширен при помощи плагинов, которые могут быть написаны на C++, Си, и Delphi. Плагины могут быть использованы для улучшения функциональности и интерфейса инсталлятора. Плагины могут быть вызваны в любой части кода NSIS скрипта.

С пакетом NSIS поставляются несколько плагинов, позволяющих добавлять новые страницы, заменять фоновые изображения, скачивать файлы из Интернета, выполнять математические вычисления, обновлять файлы и многое другое.

▫ Программы, использующие NSIS


◦ Антивирус Касперского
◦ Qip
◦ 3DNA Desktop
◦ 7-Zip
◦ ATI Display Driver
◦ CDex
◦ Dev-C++
◦ DivX
◦ eMule FileZilla
◦ Google Picasa
◦ Google Talk
◦ Intel C (компилятор)
◦ IrfanView
◦ LightAllow
◦ LyX
◦ Miranda IM Mozilla Firefox 2.0
◦ NASA World Wind
◦ Notepad++
◦ OpenOffice.org для Windows
◦ Pidgin
◦ VLC Player
◦ Winamp

● Чем я могу распаковать инсталлятор, созданный в NSIS?

В настоящее время инсталляторы NSIS не могут быть полностью декомпилированы. Сам инсталлятор не содержит в себе никаких функций для того, чтобы извлечь сценарий и/или файлы без инсталляции. Это - выбор разработчика, доступны ли исходный текст и/или файлы для инсталлятора для публики или нет. Есть, однако, внешние инструментальные средства, которые позволяют это сделать. 7-zip поддерживает частичную распаковку NSIS инсталляторов с алгоритмом сжатия lzma или bzip. Так же существует мульти-архивный плагин для TotalCommander.
Небольшая заметка для разработчиков: используйте DCryptDll, если хотите скрыть некоторые файлы в вашей инсталляции.


===========
тема прикрепляется, шапка будет дорабатыватся... Volk1234, hb860

Отправлено: 23:35, 17-06-2006

 

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Возможно, сейчас я скажу слова, на которые обидятся некоторые участники, но просить прощения я не собираюсь, говорю только от себя

Цитата dracosha:
Господа ГУРУ! Неужели для Вас это сложный вопрос? »
Цитата dracosha:
Ладно... Оставлю этот вопрос на потом. »
Я пробовал, но там проблема, что как и написал NoName01.cpp:
Цитата NoName01.cpp:
SF_SELECTED или наоборот, то она выделяется, продолжает оставаться RO, но становится зеленой. »
я не знаю, скорее всего есть какой-либо флаг или особый синтаксис (а может это и глюк NSIS), то что я вам писал ранее с отметкой и разными манипуляциями с секциями/создание 3х деинсталляторов - я делал в первый раз, не было таких необходимостей

А теперь, вы задаёте следующий вопрос #370
Цитирую отдельно:
Цитата dracosha:
хочу попросить помощи »
Разве речь идёт о помощи? Мне кажется, здесь смысл другой - напишите за меня, чтобы мне нужно было только скопировать ваш код и вставить в свой скрипт
Цитата dracosha:
Нужно что бы слева шли названия скинов, а справа чтоб при наведении на имя или хотя бы при выборе скина показывалась картинка скина. »
А разве я не ответил на вопрос №2 поста It4a - #363
А теперь вы задаёте такой же "вопрос", но так сказать о "просьбе" всё-таки написать этот код
Цитата dracosha:
ну и надо что бы выбор работал 1 из 10 »
А разве вы это сами не можети реализовать? Даже выбор 1-го компонента из 10? Вам не кажется это "подозрительным"? В работе с секциями я думаю, мы разжевали всё уже очень подробно, например, мой пост #196
dracosha, лично вы, что сделали для реализации нужной вам возможности? Ничего...я ведь прав?


А зачем вообще нужна справка по NSIS? И не нужно говорить, что там всё написано на английском языке, я начал изучать NSIS в лет 16-17 не зная английского языка (и сейчас не знаю) и никакого языка программирования, с использованием справки и примеров в папки NSIS\Examples
Это так сложно? Ввести в "указатель" в файле справки нужную вам команду и прочитать её описание? Там на все команды написаны подробнейшие примеры

Этими словами я не обращаюсь к кому-то конкретно и не хочу сказать, что лично я не собираюсь отвечать/помогать в разрешении вопросов, но посмотрите, как называется наша тема? NSIS - все вопросы, а не NSIS - скажите, что вам нужно, а мы напишем за вас готовый код

На написание данного поста меня натолкнуло:
1. У меня сейчас, в данный момент, просто катастрофически не хватает времени
2.
Цитата dracosha:
Неужели для Вас это сложный вопрос? »
Мы всё видим, мы тоже люди и не сидим каждую секунду в этой теме с включенным HM NIS Edit, чтобы как только появится вопрос, сразу бросаться писать код, и всего о NSIS мы не знаем

Вроде всё.

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:28, 30-01-2010 | #371



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для dracosha

Пользователь


Сообщения: 80
Благодарности: 11

Профиль | Отправить PM | Цитировать


K.A.V., Вы конешно имеете полное право на такие высказывания, но Вас же никто не заставляет помогать! Вас просят о помощи, но помогать или нет это решать Вам.
И по-поводу английского языка хочу сказать что я имею полное право говорить о том что я не знаю английского... Да! Вы можете сказать в ответ что есть куча переводчиков и можно воспользоваться ими... Но переводчики не умеют переводить такие специфические тексты как положено. Так что новичку без знания английского с этим разобраться нереально... Если бы переводчики могли переводить все как положено на русский то уже давным давно был бы готовый для скачивания русский хелп по nsis. Я бы сам лично его сделал. Однако его до сих пор нет.
И таких примеров как давали Вы лично мне в справке нет. Там конешно же есть похожие примеры в 3 строки, но в этих трех строчках я разобраться не могу, т.к. не понимаю за что отвечает каждый элемент. Примеров с прогой идет конешно же тоже много, но того что мне надо я не нашел, хотя скомпилил полностью все примеры которые были с nsis. Да что тут далеко ходить... Вы сами говорите что еще не все знаете, а что тогда говорить о новичках?
Тот скрипт который у меня уже есть на сегодняшний день написан только благодаря Вам и hb860. hb860 сделал отличные примеры на практике. Очень жаль что примеров там еще мало.
Форум же для того и существует что бы помогать друг другу.
И помощи от Вас я конешно же очень жду, а поможете Вы мне или нет это безусловно Ваше право.

-------
Если есть за что, жми Полезное сообщение. Пользы больше - флуда меньше :)


Отправлено: 16:56, 30-01-2010 | #372


Аватара для hb860

Идиот


Сообщения: 1125
Благодарности: 419

Профиль | Сайт | Отправить PM | Цитировать


Под постом K.A.V. я подписался
Цитата dracosha:
Очень жаль что примеров там еще мало. »
Вы и любой желающий может начать писать статьи со мной вместе. Я опубликую их здесь и на своем сайте. Я только "за", это поможет людям быстро освоить NSIS, и , кажется, немного решит проблему:
Цитата dracosha:
я имею полное право говорить о том что я не знаю английского »
Я в общем-то, лично далеко не гуру английского, и те посты, которые я делаю на соотв. форумах, вызывают улыбку англоязычных пользователей.
Цитата dracosha:
Если бы переводчики могли переводить все как положено »
Зачем переводить то? Вопрос тут не в том чтобы перевести. Надо сесть, подумать и написать.
От вас лично требуется взять блокнот, попихать в него примеры из справки и скомпилить. Увидя, как они работают на практике, необходимо реализовать некий алгоритм, последовательность действий, где вы сможете применить этот функционал команд. Вот что требуется.
Цитата:
Неужели для Вас это сложный вопрос? »
Вовсе нет. Но нам надо сесть, разработать алгоритм и реализовать код- все то, что лично вы не желаете делать, ибо ни я, ни K.A.V., по всей видимости, такую задачу не решали и нам она "в новинку" (и её практическая ценность, я полагаю, весьма сомнительна). Нам несложно, но это требует времени, и немалого. Мы не отказываем вам в помощи и не ставим целью оскорбить вас или ваши навыки, но, действительно, у нас и другие дела. Впрочем, два поста выше это уже было сказано.
dracosha, попробую завтра пописать для вас.

-------
http://feeds.feedburner.com/Winreviewru.1.gif
Горячие клавиши Windows 8 | Все программы, которые я разработал| Гаджеты для Windows 8

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:40, 30-01-2010 | #373


Аватара для dracosha

Пользователь


Сообщения: 80
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата hb860:
что лично вы не желаете делать »
почему Вы так решили? Я уже несколько дней мучаюсь над этим, но у меня ничего не получается
И я все больше и больше понимаю что для того что бы я мог разобраться с предстоящими задачами по выбору компонентов мне нужно все таки понимать смысл всех переменных. А я их непонимаю. И то что в хелпе написано для меня непонятно, а когда переводчиком перевожу мне становиться плохо от того как переводится этот текст.

-------
Если есть за что, жми Полезное сообщение. Пользы больше - флуда меньше :)


Отправлено: 00:44, 31-01-2010 | #374


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата dracosha:
Вы можете сказать в ответ что есть куча переводчиков и можно воспользоваться ими... »
Цитата dracosha:
Так что новичку без знания английского с этим разобраться нереально... »
Вы наверное не внимательно прочитали мой пост
Цитата K.A.V.:
я начал изучать NSIS в лет 16-17 не зная английского языка (и сейчас не знаю) »
Просто было большое желание и очень много тестов
Не скажу, что всё получалось сразу, даже сейчас не всё получается с первого раза, но усилия, которые прилагаются для реализации нужной возможности не оказываются напрасными, просто нужно запастись побольше терпением и желанием

Цитата dracosha:
И таких примеров как давали Вы лично мне в справке нет. »
Сначала команды изучаются по отдельности методом тестов естественно, затем включаем устройство под названием мозг и посылаем ему команду на выявление возможных связок команд в функции, т.е. что можно сделать с использованием нескольких команд, вот тогда и рождаются функции...

Всё, на этом предлагаю прекратить оффтоп

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:18, 31-01-2010 | #375


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здраствуйте! У меня вопрос по поводу плагина MSSQL OLEDB plug-in.
Я подключаюсь к sql серверу, делаю запрос и получаю результат с помощью MSSQL_OLEDB::SQL_GetRow.
После этого возвращается строка. И если запрос возвращает не одно значение а несколько(можна сказать структуру), то строка будет примерно вот такого типа:
Value1|Value2|...
Тоесть разделитель это символ |
Проблема в том, что мне нужно получить только одно конкретное значение(например первое), а не всю строку.

Как мне разбить эту строку?
Видел в интернете !insertmacro GET_STRING_TOKEN. Но у меня компилятор его не нашел, и оно я так понял разделяет строку с пробелами.

Отправлено: 20:31, 31-01-2010 | #376


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата NoName01.cpp:
Видел в интернете !insertmacro GET_STRING_TOKEN »
Читали здесь?
Там нужно добавить целую страницу кода И как покзано в том коде, ещё нужно создать пару переменных с помощью !define:
Код: Выделить весь код
!define PART ""
!define INPUT ""
Я сам не тестировал, поэтому сказать наверняка не могу


Но могу представить на обозрение собственный механизм
читать дальше »
В начале кода:
Код: Выделить весь код
!include "StrFunc.nsh"
${StrStrAdv}
${StrRep}
Предположу, что наша строка хранится в переменной $1
Код: Выделить весь код
 
strcpy $1 "C|Program Files|NSIS|test1|test2"

# Предварительно, необходимо добавить символ "|" в конец строки, чтобы прочитать последнее значение
StrCpy $1 "$1|"

now:
  ${StrStrAdv} $0 "$1" "|" ">" "<" "0" "0" "1"
  StrCmp $0 "" end 0
# Выполняем код, который нужен [ начало ]
MessageBox MB_OK|MB_ICONINFORMATION "$0$\n$1"
# Выполняем код, который нужен [ конец ]

# Продолжаем фильтр строки
  ${StrRep} $1 "$1" "$0|" ""
goto now
end:



dracosha, с секциями можно вот так реализовать:
читать дальше »
Код: Выделить весь код
Function .onSelChange
SectionGetFlags ${section1} $1
StrCmp $1 "0" 0 noUnCheck
SectionSetFlags ${section2} 0
SectionSetFlags ${section3} 0
SectionSetFlags ${section4} 0
noUnCheck:
FunctionEnd



Раз уж всем нужна возможность показывать картинки на странице выбора компонентов, то попозже попробую поискать свой код, который я когда-то писал...

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Последний раз редактировалось K.A.V., 01-02-2010 в 08:21. Причина: Добавил код для dracosha

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:54, 01-02-2010 | #377


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


Люди, как сделать чтобы при запуске денисталлятора автоматом выбирался язык который юзер выбрал при запуске инсталлятора?
Записывать выбранный язык в реестр?

Отправлено: 17:39, 02-02-2010 | #378


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата NoName01.cpp:
Люди, как сделать чтобы при запуске денисталлятора автоматом выбирался язык который юзер выбрал при запуске инсталлятора?
Записывать выбранный язык в реестр? »
А почему бы и нет, вы всё равно создаёте ветку программы в Uninstall в реестре, от добавления 1 параметра я думаю ничего плохого не случится

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:45, 02-02-2010 | #379


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите, пожалуйста!
Нашел в примерах такое
System::Call '${sysSetupCopyOEMInf}?e (R1, R2, ${SPOST_PATH}, 0, 0, 0, 0, 0) .r0'
Я так понимаю, что таким образом формируется список параметров. Ткните носом, где можно найти описание такого синтаксиса передачи параметров. Ни в документации на nsis.sourceforge.net, ни поиском не могу по этому поводу ничего найти. Наверное не везет

Отправлено: 20:06, 02-02-2010 | #380



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Мультимедиа - 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




 
Переход