Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Справочник по NSIS (http://forum.oszone.net/showthread.php?t=168287)

K.A.V. 23-02-2010 15:35 1353970

Справочник по NSIS
 
Вложений: 1
Справочник по NSIS. Версия 1.5



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

В данной теме обсуждается только справочник, если вы хотите задать вопрос по языку NSIS, делайте это, пожалуйста, в соседней теме - .: NSIS - все вопросы :.




Если вы разбираетесь в языке NSIS, вы можете предложить свою помощь в наполнении справочника информацией в виде статей, примеров кодов, перевода описания плагинов, перевода команд из справки NSIS, то пишем мне в PM.
Убедительная просьба: если хотите помочь, делайте это грамотно, т.е. всё понятно, подробно и доходчиво расписывайте в своих примерах

K.A.V. 01-05-2011 14:17 1668438

Обновил шапку, поправил ссылку на загрузку версии 1.2

Хочу выразить благодарность участнику kotkovets за немалое количество добавленной информации.

K.A.V. 01-09-2011 15:44 1744069

Справочник по NSIS v1.3
Вот...Мы решили подготовиться и успеть к этому дню, дню знаний, и от нас Вам небольшой подарок, уважаемые кодеры на NSIS, ввиде новой версии справочника! ;)

Новая версия во вложении в шапке темы.
Что нового в новой версии:

Примеры кодов
  • Определяем и меняем разрешение экрана
  • Создаём текстовые файлы
  • Определение продукта MSI (обновлено)
  • Process (работа с процессами)
  • Registry in NSIS (работа с реестром)
  • Определение SID пользователя
  • Определение размера файла как ОС
  • Определение ОС (новый метод!)

Новые описания плагинов
  • Registry: Работа с реестром
  • System: Вызов функций из внешних библиотек
  • Украшаем инсталлятор

Перевод справки NSIS
  • !addincludedir
  • !addplugindir
  • AddSize
  • BrandingText
  • Call
  • CallInstDLL
  • CreateShortCut
  • DirState
  • DriveSpace
  • Exec
  • ExecWait
  • ExpandEnvStrings
  • FindFirst
  • FindWindow
  • GetBaseName
  • Get Installer Filename
  • GetDLLVersion
  • GetDrives
  • GetFileExt
  • GetFileVersion
  • GetOptions
  • GetParameters
  • GetParent
  • GetRoot
  • GetSize
  • GetTime
  • LineRead
  • LineSum
  • Locate
  • RefreshShellIcons
  • RegDLL
  • Rename
  • RMDir
  • Section
  • SectionGetFlags
  • SectionSetFlags
  • SectionGetText
  • SectionSetText

silione 03-09-2011 10:00 1745161

Статья "Определение продукта msi" встречается в списке статей 2 раза (после логических конструкций и перед process).
В статье "Работа с реестром с помощью NSIS" при нажатии на "Загрузить библиотеку" вместо загрузки файла в томже окне открывается его содержимое.

Ivn78 17-06-2012 13:38 1935713

в справочнике неточность - вместо функции Delete описывается IfRebootFlag

kotkovets 17-06-2012 13:55 1935723

Цитата:

Цитата Ivn78
в справочнике неточность - вместо функции Delete описывается IfRebootFlag »

Delete связана с флагом перезагрузки так или иначе, получается описание двух команд одновременно, поэтому и указатель ведет IfRebootFlag.

K.A.V. 09-08-2012 10:59 1967251

Справочник по NSIS v1.4

Что нового?
Новый раздел Обучение IO: собственные странички


Примеры кодов
  • Работа со строками => Получаем значение параметра в строке
  • Работа со строками => Замена фразы в текстовом файле
  • Перечисляем окна в системе
  • Сворачиваем все окна
  • Генерируем случайное число
  • Умное сравнение версий файлов


Перевод справки NSIS
  • CreateDirectory
  • FileJoin
  • FileOpen
  • GetCurInstType


Новые описания плагинов
  • Dialogs: выбор файла/папки и не только
  • EnumINI: Очень полезный плагин
  • MD5: Контрольные суммы
  • NewAdvSplash: изображение перед запуском
  • nsWeb: Отображаем HTML-содержимое


===
Качаем вложение из шапки темы

Creator000 23-08-2012 16:02 1975485

почему папки описаний элементов IO пусты?

K.A.V. 24-08-2012 14:47 1976207

Цитата:

Цитата Creator000
почему папки описаний элементов IO пусты? »

Потому что раздел по созданию собственных страничек в разработке, он только открылся...

И в данных разделах в основном будут описываться разные команды именно при создании сложных диалогов
Для простых страничек описание элементов впринципе не нужно...состояния элементов при создании простых диалогов можно прочитав параметр State

Собственно и об этом сказано в файле справки...

Creator000 07-09-2012 20:58 1984942

будут еще статьи про разные плагины? совсем самый минимум

K.A.V. 07-09-2012 21:46 1984958

Цитата:

Цитата Creator000
будут еще статьи про разные плагины? »

Будут

Цитата:

Цитата Creator000
совсем самый минимум »

Если бы мы (создатели справочника) не занимались по жизни вообще ничем и сидели бы только и писали данный справочник, то было бы больше

Мы уделяем большее внимание именно примерам готовых кодов, т.к. это самая важная часть справочника

Creator000 02-10-2012 22:10 1998629

Нашел отпечатку - Интерфейс Modern->Страница принятия лицензии
Цитата:

Команда MUI_LICENSEPAGE_TEXT помещает текст под окном лицензии. !define MUI_LICENSEPAGE_TEXT "Вы прочли справочник по NSIS"
!define MUI_LICENSEPAGE_TEXT_BOTTOM должно быть. Иначе у меня не работает.

Aster 09-10-2012 12:03 2001968

K.A.V. и kotkovets, огромное спасибо за справочник.
В нём действительно очень много полезной и нужной информации о NSIS.

Вопрос может немного отклонённый от темы.
Хочу для своего проекта сделать подобную справку в Chm формате.
Если не затруднит, Артём, не могли бы вкратце сообщить какие программы использовали для создания справочника и вообще непосредственно принцип создания.
Спасибо.

MKN 09-10-2012 15:26 2002075

Цитата:

Цитата Aster
какие программы использовали для создания справочника »

Программ подобного назначения - тьма. От бесплатной HelpNDoc (http://www.helpndoc.com/download) до, пожалуй самой интересной, DocToHelp (http://www.componentone.com/SuperProducts/DocToHelp/
обзор, к примеру здесь : http://www.softkey.info/reviews/revi...ravda&compid=1)

Creator000 14-10-2012 20:32 2005291

А справочник функций WinAPI чисто для nsis будет?

kotkovets 14-10-2012 21:20 2005336

Цитата:

Цитата Creator000
А справочник функций WinAPI чисто для nsis будет? »

А что вы хотите в WinAPI ????
функций несколько тысяч...
вы разберитесь в базовом nsis для начала... :lol:
nsis API и так использует по полной...
особенно в библиотеках в папке NSIS\Include
---
для API используются "коробочный" плагин System в справке подробно описан...

Creator000 15-10-2012 14:36 2005745

Цитата:

Цитата kotkovets
А что вы хотите в WinAPI ???? »

Например, MEssageBox свой нарисовать. мало ли функций. Не вас же каждый раз тревожить.

Цитата:

Цитата kotkovets
вы разберитесь в базовом nsis для начала... »

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

Цитата:

Цитата kotkovets
для API используются "коробочный" плагин System в справке подробно описан... »

Описан, но к сожалению, я не англичанин.

K.A.V. 27-01-2013 19:56 2076296

Кто читает наш справочник? :)

Конкретно интересует новый раздел "Обучение IO: собственные странички", никогда никого не обучал, отсюда возник вопрос, всё ли понятно и доступно ли происходит объяснение мной материала?
Может есть какие пожелания по данному разделу? И вообще, есть ли заинтересованные в создании собственных страничек с помощью IO?
Или я один такой остался, все на nsDialogs пишут :biggrin:

MKN 27-01-2013 20:26 2076328

Цитата:

Цитата K.A.V.
И вообще, есть ли заинтересованные в создании собственных страничек с помощью IO?
Или я один такой остался, все на nsDialogs пишут »

IO всё же в прошлом... nsDialogs гибче и интереснее. ИМХО. Я бы ему посвятил отдельный справочник. :)

K.A.V. 27-01-2013 21:39 2076374

Цитата:

Цитата MKN
IO всё же в прошлом... »

И чем же он на столько хуже? Аргументы есть везкие? ;)
IO был первым, затем появился улучшенный InstallOptionEx с поддержкой дополнительных элементов и с кучей возможностей

По крайней мере сейчас для меня IO более простой способ и я сейчас не вижу минусов IO перед nsDialogs, а вы? :)
Мне, если честно, гораздо проще создавать диалоги визуально в HM NIS Edit, к тому же в функционале пока что проблем вроде бы нет

SFX Creator то, помните ещё мой, или уже нет? ;)
Он же весь написан на NSIS и все диалоги в SFX Creator исполняются под управлением IO (знали это? ;) )
Даже в написании SFX Creator я не ощущаю проблем с IO, т.к. всех возможностей IO в связке с WinMessages мне хватает сполна

MKN 28-01-2013 09:05 2076630

Цитата:

Цитата K.A.V.
И чем же он на столько хуже? Аргументы есть везкие? »

Я не сказал "хуже", (если результат одинаков) :) Но ориентируюсь на личный опыт, (пусть пока и не богатый) - nsDialogs для меня удобней и понятней, а также сами разрабы указывают :
Цитата:

"nsDialogs это новый NSIS плагин, появившийся взамен InstallOptions. nsDialogs не использует INI-файлов, что делает процесс создания страниц более быстрым и более гибким."
Отсюда логичный вывод - nsDialogs современнее и более продвинутый. Разрабам всё же видней... :) А уж начинающим изучать NSIS - надо бы ориентироваться именно на nsDialogs... Зачем им разжёвывать прошлый век... :) (Упомянуть конечно можно, что давным давно в незапамятные времена, люди использовали IO.... :) )
Цитата:

Цитата K.A.V.
гораздо проще создавать диалоги визуально в HM NIS Edit »

И HM NIS Edit устарел (если не сказать дремуч, не обновлялся аж с 2005 года ), а для создания визуальных страниц, вообще малопригоден... Для визуализации - NSIS Dialog Designer. (хотя и сыроват, но постоянно совершенствуется и автор прислушивается к пожеланиям и замечаниям)
А для написания скриптов - лучше чем в Notepad++ , ничего нет (чего только я не перепробовал...). Опять же - это моё личное мнение и личный опыт.
А пользователи пускай пробуют, сравнивают и делают выводы, сами... :)

K.A.V. 28-01-2013 16:29 2076954

Цитата:

Цитата MKN
А уж начинающим изучать NSIS - надо бы ориентироваться именно на nsDialogs... Зачем им разжёвывать прошлый век... »

Ну, значим грохнем раздел про IO в справке и начнём публикацию статей с nsDialogs :)

MaGoth 25-07-2013 21:24 2190732

K.A.V.,
Зачем его грохать? Оставь как есть, мало ли кому он пригодится, + ты не один такой, я его тоже юзаю по-сей день.

Dodakaedr 30-01-2014 23:57 2299581

Почему она пустая?

Iska 31-01-2014 01:23 2299597

На всякий случай, посмотрите, нет ли кнопки «Разблокировать» в свойствах файла, наподобие:


K.A.V. 31-01-2014 01:30 2299599

Цитата:

Цитата Dodakaedr
Почему она пустая? »

Попробуйте следующее:
Цитата:

1. Щелкните CHM-файл правой кнопкой мыши и выберите команду "Свойства".
2. Нажмите кнопку "Разблокировать".
3. Дважды щелкните CHM-файл, чтобы открыть его.
ps
Пока искал решение, коллега подсказал :)

Dodakaedr 31-01-2014 19:49 2300127

Все работает....спс!

K.A.V. 11-05-2014 16:34 2349981

Версия 1.4.1

Это "космитическое" обновление справочника, добавленной информации нет, за исключением небольшой информации в разделе "Обучение IO: собственные странички" и обновлении winver2.nsh

Список изменений
читать дальше »

Обновлен Указатель
Добавлена функция поиска по файлу справки

Обновление страниц раздела:
Обучение IO: собственные странички

Обновлено:
Примеры кодов => Определение ОС (обновлен winver2.nsh: добавлена поддержка win8/win8.1 по состоянию данных поста kotkovets на 06-05-2014)

Перенос страниц:
Перевод справки NSIS => Labels в Статьи
Перевод справки NSIS => Relative Jumps: Относительные переходы в Статьи
Примеры кодов => Замена строки в текстовом файле. в Примеры кодов => Работа со строками
Примеры кодов => Определение ОС в Статьи
Примеры кодов => Логические конструкции в Статьи
Примеры кодов => Определение продукта msi в Статьи
Примеры кодов => Работа с процессами в Статьи
Примеры кодов => Работа с реестром в Статьи

Удалено:
Примеры кодов => Определение операционной системы
Данный устаревший пример кода заменен статьёй "Статьи => Определение ОС"

Удалено (т.к. дубли, не являющиеся примерами кодов):
Примеры кодов => Работа со строками => StrCmp
Примеры кодов => Работа со строками => StrCpy
Примеры кодов => Работа со строками => StrFilter
Примеры кодов => Работа со строками => StrRep
Примеры кодов => Работа со строками => StrLen

Для отображения полной информации по доступным описаниям команд продублированы страницы в раздел "Перевод справки NSIS" из разделов:
Перевод справки NSIS => Стандартные функции
Перевод справки NSIS => Работа с INI файлами
Перевод справки NSIS => Работа с реестром

Из раздела "Перевод справки NSIS" продублированы странички для работы со строками в раздел "Перевод справки NSIS => Работа со строками"

Сортировка в разделах:
Перевод справки NSIS => Работа с INI файлами
Перевод справки NSIS => Работа с реестром
Примеры кодов
Описания плагинов

K.A.V. 17-05-2014 18:05 2352498

Справочник по NSIS. Версия 1.5

Изменения в разделе "Обучение IO: собственные странички"
Обновлены все странички раздела.
Примечание. Прошу обратить внимание тех, кто уже читал данный раздел, придётся вам прочитать его ещё раз, начиная с введения. Добавлено много важной информации, включая файлы с макросами, которые необходимо подключить перед началом работы с IOEx

Сложные странички => Делаем элемент управления взаимодействующим
Сложные странички => Скрипт функций сложных страничек

Элементы в диалоге => Дополнительные возможности => Стилизация элементов: Шрифт, размер и стиль текста
Элементы в диалоге => Дополнительные возможности => Всплывающие подсказки
Элементы в диалоге => Вопрос-ответ

Добавлена информация по работе со следующими элементами:
Элементы в диалоге => Button: кнопка
Элементы в диалоге => Checkbox: галочка
Элементы в диалоге => Droplist: выпадающий фиксированный список
Элементы в диалоге => Image: изображение/иконка
Элементы в диалоге => Label: текст
Элементы в диалоге => Link: ссылка
Элементы в диалоге => ListView: обычный список
Элементы в диалоге => ListView: список с колонками
Элементы в диалоге => ProgressBar: шкала прогресса
Элементы в диалоге => RadioButton: радиокнопка
Элементы в диалоге => Text: текстовое поле/ввод пароля
Элементы в диалоге => TrackBar: Ползунок

Примеры диалогов:
Примеры диалогов => Диалог со списком окон в системе
Примеры диалогов => Считываем данные из консольного приложения в ListView

Обновленные описания команд из справки NSIS
CreateChortcut

Добавленные описания команд из справки NSIS
!getdllversion - определяем версию файла в момент компиляции
.onRebootFailed - ошибка перезагрузки компьютера
CopyFiles - копирование файлов
Delete - удаление файлов
EnableWindow - неактивные элементы интерфейса
ExecShell - выполнение команды оболочки
HideWindow - скрываем графический интерфейс
ShowWindow - скрываем/показываем элементы и окна
Sleep - пауза
Quit - закрытие инсталлятора
Reboot - перезагрузка компьютера

Добавленные примеры кодов
Оформление => Прозрачное окно программы/инсталлятора
Оформление => Ссылка на странице приветствия

Примеры кодов => Подсчет интервала времени
Примеры кодов => Получаем сведения о процессе по HWND окна
Примеры кодов => Проигрывание WAV-файлов
Примеры кодов => Русские символы в DOS кодировке

Обновленные файлы *.nsh
WinVer2.nsh (из Статьи => Определение ОС), добавлена поддержка Win8/Win8.1
CommCtrl.nsh (из раздела Обучение IO: собственные странички), мелкая поправка, позволяющая избежать ошибки компиляции, кто читает раздел - загрузите библиотеку из справочника ещё раз!

MaGoth 04-08-2014 22:56 2385233

KAV,
Спасибо дорогой, за обновку, давно не было. :up
Уже штудирую.. :yes:

Serg866 29-08-2014 01:41 2395577

Спасибо за справочник!
В нём невероятное количество полезной информации.

Dodakaedr 17-01-2015 23:35 2457646

Подскажите, имеется ли в справке информация по работе с папками? (копирование, перемещение). Не могу найти....

K.A.V. 17-01-2015 23:43 2457648

Цитата:

Цитата Dodakaedr
Подскажите, имеется ли в справке информация по работе с папками? (копирование, перемещение) »

Копирование файлов
Перевод справки NSIS => CopyFiles

Создание директории
Перевод справки NSIS => CreateDirectory

Переименование/перемещение файлов
Перевод справки NSIS => Rename

Удаление директории
Перевод справки NSIS => RMDir

taurus_t@vk 15-02-2015 21:21 2471661

Здравствуйте. Спасибо за Справочник! Помог разобраться с System::Call.

Но назначение точки '.' в параметрах не очевидно, не сразу врубился. По оффициальной документации вообще не понятно, по вашей пришлось сначала подумать. Думаю стоит добавить прямым текстом, что она используется чтобы пропустить источник (source), и сразу указать назначение (destination)

Alexej77 26-03-2016 09:16 2619891

В онлайн и оффлайн справках опечатка. Здесь:

Следующий пример уведомит пользователя, если значения переменных $0 и $1 будут равны:
Код:

Section
StrCpy $0 0
StrCpy $1 0
 ${If} $0 == 0
 ${AndIf} $1 == 0
    MessageBox MB_OK $0=$1
 ${EndIf}
SectionEnd

должно быть написано так:
...если значения переменных $0 и $1 будут равны 0:

MaGoth 03-12-2016 17:47 2692594

K.A.V.,
Где обновки ?! Уже НГ на носу... :)

MaGoth 29-03-2018 20:17 2806168

K.A.V.,
Обновки еще будут или ты с 2014 забил на сей проект ?! :unsure:

динозавра 29-03-2019 11:02 2865726

Походу K.A.V забил на проект.

mwz 29-03-2019 12:38 2865748

Цитата:

Цитата динозавра
Походу K.A.V забил на проект. »

Последний раз его видели на форуме 12-02-2017, 18:52 — т.е. более двух лет назад...

MaGoth 09-04-2019 02:37 2867126

Членово, что тут еще сказать..


Время: 00:06.

Время: 00:06.
© OSzone.net 2001-