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

Компьютерный форум 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

 
XCV XCV вне форума

Старожил


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

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


Цитата kotkovets:
такого конвертера нет, но если есть голова и руки и знать, что cmd делает и плюс по надобности, пару вызовов API - то конвертер совершенно ник чему... »
ну это как сказать, если Вы пишите скрипты 3-5 строчек и раз в месяц, то Вам ни к чему, а у меня возникает частенько желание переделать cmd файл (в котором 100-200 строк) в nsis скрипт и вот тут такой конвертер ох как нужен (лень - двигатель прогресса, а я очень ленивый )

-------
http://static.hsdn.org/infobar/240x15.gif


Отправлено: 10:22, 06-04-2011 | #1031



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

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


Аватара для kotkovets

Ветеран


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

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


Цитата XCV:
лень - двигатель прогресса, а я очень ленивый »
Это я понял, что за cmd? что делает? я иногда батники скриптом NSIS делаю (через FileWrite) и запускаю скрытно, т.е батник создается в процессе работы установщика.
Возьмите Visual Studio или Delphi и сварганьте конвертер, если не лень конечно...

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 06-04-2011 в 12:37.


Отправлено: 12:23, 06-04-2011 | #1032

XCV XCV вне форума

Старожил


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

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


Цитата kotkovets:
Возьмите Visual Studio или Delphi и сварганьте конвертер, если не лень конечно... »
в том то и дело что лень, я думал может кто сделал уже такое до меня, тогда дабы не изобретать велосипед можно было бы воспользоватся чужими наработками
ЗЫ: инсталятор то тоже можно самому написать

-------
http://static.hsdn.org/infobar/240x15.gif


Отправлено: 18:51, 06-04-2011 | #1033


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


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

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


Доброго вечера, уважаемые.
Прошу помощи в следующем вопросе:
имеются файлы с расширениями .tmp.patchFile и файл VPatch.dll
как реализовать функцию патченья при помощи данных файлов средствами zip2exe в классической оболочке с автоматическим поиском папки назначения?

За помощь буду очень благодарен и признателен. Заранее спасибо.

Отправлено: 23:22, 06-04-2011 | #1034


Аватара для wolkow70

Ветеран


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

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


Уважаемый kotkovets, подскажите почему не компилируется такая строка?

WriteRegBin HKEY_CLASSES_ROOT ".bmp\OpenWithProgids" "Paint.Picture"

Получена с помощью конвертера рег-файлов.....

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 09:21, 07-04-2011 | #1035


Аватара для kotkovets

Ветеран


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

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


Цитата wolkow70:
Получена с помощью конвертера рег-файлов..... »
Ну нельзя доверять полностью таким утилитам, у нее полно багов...
а запись бинарных данных записывается так:
WriteRegBin [root_key] [subkey] [key_name] [valuedata] т.е так выходит:
WriteRegBin HKLM "Software\My Company\My Software" "Binary Value" DEADBEEF01223211151
и к тому же записи такого типа полно в реестре, несложно посмотреь, но редактор бывает их сохраняет строковые значения как бинарные, утилитка это видит и делает по своему, как хозяин прописал...
В вашем случае. как то так: WriteRegStr HKCR ".bmp" "OpenWithProgids" "Paint.Picture"
Цитата a--e:
как реализовать функцию патченья »
Вот пример, и патчить можно практически любой файл
пример

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

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

Отправлено: 10:05, 07-04-2011 | #1036

MKN MKN вне форума

Ветеран


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

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


И у меня вопрос по поводу записи бинарных значений в реестр.

Запись в реестр значения этого рабочего reg-файла :
Код: Выделить весь код
[HKEY_CURRENT_USER\Software\ACD Systems\ACDSee Pro\40\en\Settings\Browser\BCGPDockManager--1]
"DockingCBAndSliders"=hex:00,00,00,00,0b,00,00,00,00,00,00,00,00,20,00,00,00,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,\
  00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,\
  00,88,56,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,\
  88,56,00,00,01,00,00,00,88,56,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,\
  ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,00,00,00,00,\
  00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d8,07,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d8,07,00,00,\
  01,00,00,00,d8,07,00,00,00,00,00,00,00,40,00,00,00,00,00,00,ff,ff,ff,ff,ff,\
  ff,ff,ff,b2,03,00,00,37,00,00,00,b6,03,00,00,b1,03,00,00,00,00,00,00,02,00,\
  00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,ff,ff,ff,ff,04,00,00,\
  00,d2,07,00,00,cf,07,00,00,d3,07,00,00,d7,07,00,00,ff,ff,02,00,14,00,43,41,\
  43,44,54,61,62,62,65,64,43,6f,6e,74,72,6f,6c,42,61,72,00,40,00,00,00,00,00,\
  00,bb,03,00,00,56,00,00,00,05,05,00,00,cd,03,00,00,b6,03,00,00,37,00,00,00,\
  00,05,00,00,b1,03,00,00,00,00,00,00,01,00,00,00,40,41,00,46,04,00,00,00,ff,\
  fe,ff,08,4f,00,72,00,67,00,61,00,6e,00,69,00,7a,00,65,00,00,00,00,00,d2,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,54,00,61,00,73,00,6b,\
  00,20,00,50,00,61,00,6e,00,65,00,00,00,00,00,cf,07,00,00,01,00,00,00,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,fe,ff,0a,50,00,72,00,6f,00,70,00,65,00,72,00,74,00,69,\
  00,65,00,73,00,00,00,00,00,d3,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,fe,ff,06,53,00,65,00,61,00,72,00,63,00,68,00,00,00,00,00,d7,07,00,00,01,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,d2,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d2,07,00,00,00,00,00,00,00,10,00,00,01,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,e2,00,00,00,37,00,00,00,e6,00,00,00,ae,03,00,00,01,00,00,00,02,\
  00,00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,04,00,00,00,d1,07,00,00,d5,07,00,\
  00,cd,07,00,00,ce,07,00,00,01,80,00,10,00,00,01,00,00,00,05,00,00,00,56,00,\
  00,00,e7,00,00,00,12,02,00,00,00,00,00,00,37,00,00,00,e2,00,00,00,f3,01,00,\
  00,00,00,00,00,01,00,00,00,40,14,00,56,04,00,00,00,ff,fe,ff,07,46,00,6f,00,\
  6c,00,64,00,65,00,72,00,73,00,01,00,00,00,d1,07,00,00,01,00,00,00,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,fe,ff,08,43,00,61,00,6c,00,65,00,6e,00,64,00,61,00,72,00,\
  01,00,00,00,d5,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,46,\
  00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,00,01,00,00,00,cd,07,00,00,\
  01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,0e,50,00,72,00,69,00,76,00,61,\
  00,74,00,65,00,20,00,46,00,6f,00,6c,00,64,00,65,00,72,00,00,00,00,00,ce,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,d6,07,00,\
  00,01,00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,ff,ff,ff,ff,00,00,00,00,\
  f3,01,00,00,e2,00,00,00,f7,01,00,00,01,00,00,00,01,00,00,10,04,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,\
  00,00,ff,ff,ff,ff,d1,07,00,00,d6,07,00,00,01,00,00,00,d6,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d1,07,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,00,00,00,00,02,00,00,00,04,00,00,00,06,00,00,00,00,00,00,00,01,\
  00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d0,07,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d0,07,00,00,01,00,00,\
  00,d0,07,00,00,00,00,00,00,00,00,00,00,00,00,00,00
необходимо реализовать посредством NSIS

Классический способ записи WriteRegBin [root_key] [subkey] [key_name] [valuedata] - почему то не срабатывает... Может значение слишком велико по объёму ?

Пробую Registry плагин :
Код: Выделить весь код
Name "Bin"
OutFile testbin.exe

!include "Registry.nsh"

Section 

${registry::StrToHex} "00,00,00,00,0b,00,00,00,00,00,00,00,00,20,00,00,00,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,\
  00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,\
  00,88,56,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,\
  88,56,00,00,01,00,00,00,88,56,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,\
  ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,00,00,00,00,\
  00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d8,07,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d8,07,00,00,\
  01,00,00,00,d8,07,00,00,00,00,00,00,00,40,00,00,00,00,00,00,ff,ff,ff,ff,ff,\
  ff,ff,ff,b2,03,00,00,37,00,00,00,b6,03,00,00,b1,03,00,00,00,00,00,00,02,00,\
  00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,ff,ff,ff,ff,04,00,00,\
  00,d2,07,00,00,cf,07,00,00,d3,07,00,00,d7,07,00,00,ff,ff,02,00,14,00,43,41,\
  43,44,54,61,62,62,65,64,43,6f,6e,74,72,6f,6c,42,61,72,00,40,00,00,00,00,00,\
  00,bb,03,00,00,56,00,00,00,05,05,00,00,cd,03,00,00,b6,03,00,00,37,00,00,00,\
  00,05,00,00,b1,03,00,00,00,00,00,00,01,00,00,00,40,41,00,46,04,00,00,00,ff,\
  fe,ff,08,4f,00,72,00,67,00,61,00,6e,00,69,00,7a,00,65,00,00,00,00,00,d2,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,54,00,61,00,73,00,6b,\
  00,20,00,50,00,61,00,6e,00,65,00,00,00,00,00,cf,07,00,00,01,00,00,00,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,fe,ff,0a,50,00,72,00,6f,00,70,00,65,00,72,00,74,00,69,\
  00,65,00,73,00,00,00,00,00,d3,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,fe,ff,06,53,00,65,00,61,00,72,00,63,00,68,00,00,00,00,00,d7,07,00,00,01,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,d2,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d2,07,00,00,00,00,00,00,00,10,00,00,01,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,e2,00,00,00,37,00,00,00,e6,00,00,00,ae,03,00,00,01,00,00,00,02,\
  00,00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,04,00,00,00,d1,07,00,00,d5,07,00,\
  00,cd,07,00,00,ce,07,00,00,01,80,00,10,00,00,01,00,00,00,05,00,00,00,56,00,\
  00,00,e7,00,00,00,12,02,00,00,00,00,00,00,37,00,00,00,e2,00,00,00,f3,01,00,\
  00,00,00,00,00,01,00,00,00,40,14,00,56,04,00,00,00,ff,fe,ff,07,46,00,6f,00,\
  6c,00,64,00,65,00,72,00,73,00,01,00,00,00,d1,07,00,00,01,00,00,00,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,fe,ff,08,43,00,61,00,6c,00,65,00,6e,00,64,00,61,00,72,00,\
  01,00,00,00,d5,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,46,\
  00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,00,01,00,00,00,cd,07,00,00,\
  01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,0e,50,00,72,00,69,00,76,00,61,\
  00,74,00,65,00,20,00,46,00,6f,00,6c,00,64,00,65,00,72,00,00,00,00,00,ce,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,d6,07,00,\
  00,01,00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,ff,ff,ff,ff,00,00,00,00,\
  f3,01,00,00,e2,00,00,00,f7,01,00,00,01,00,00,00,01,00,00,10,04,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,\
  00,00,ff,ff,ff,ff,d1,07,00,00,d6,07,00,00,01,00,00,00,d6,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d1,07,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,00,00,00,00,02,00,00,00,04,00,00,00,06,00,00,00,00,00,00,00,01,\
  00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d0,07,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d0,07,00,00,01,00,00,\
  00,d0,07,00,00,00,00,00,00,00,00,00,00,00,00,00,00" $0

  ${registry::Write} "HKCU\Software\ACD Systems\ACDSee Pro\40\en\Settings\Browser\BCGPDockManager--1" "DockingCBAndSliders" "$0" "REG_BINARY" $R0

MessageBox MB_OK "registry::StrToHex$\n$\n\
К сожалению, при данном варианте скрипта,  в реестр записалось значение, $\n$\n\
не соответствующее значению исходного REG-файла..."
SectionEnd
Значение записывается, но... не верное ! Соответственно нет результата. (точнее, происходит ряд изменений совершенно не нужных...) В чём я ошибся ?

ps Проверяю, экспортируя из реестра, ключ записанный посредством NSIS. Значение в нём другое, отличное от исходного рабочего reg-файла... Что за чертовщина ?!

Последний раз редактировалось MKN, 07-04-2011 в 10:56.


Отправлено: 10:44, 07-04-2011 | #1037


Аватара для kotkovets

Ветеран


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

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


MKN, дело в стандартном NSIS у которого размер передачи и хранения данных ограничен 1024 байтами, поэтому обрезается значение до этой длины, скачай специальную версию NSIS Large strings , где размер увеличен до 8192 байта, замени все файлы из скачанного архива.Сейчас проверил, работает как нужно, сравнил значения до и после - индетичны.
читать дальше »
Код: Выделить весь код
  WriteRegbin HKCU "Software\ACD Systems\ACDSee Pro\40\en\Settings\Browser\BCGPDockManager--1" "DockingCBAndSliders" \
  000000000b000000000000000020000000000000ffffffffffffffff000000000000000004000000040000000000000001000000040000000100\
  00000000000000000000885600000000000000000000000000000000000001000000885600000100000088560000000000000080000000000000\
  ffffffffffffffff00000000000000000400000004000000000000000100000004000000010000000000000000000000d8070000000000000000\
  0000000000000000000001000000d807000001000000d8070000000000000040000000000000ffffffffffffffffb203000037000000b6030000\
  b1030000000000000200001004000000010000000000000000000000ffffffff04000000d2070000cf070000d3070000d7070000ffff02001400\
  43414344546162626564436f6e74726f6c4261720040000000000000bb0300005600000005050000cd030000b60300003700000000050000b103\
  000000000000010000004041004604000000fffeff084f007200670061006e0069007a00650000000000d207000001000000ffffffffffffffff\
  fffeff095400610073006b002000500061006e00650000000000cf07000001000000fffffffffffffffffffeff0a500072006f00700065007200\
  740069006500730000000000d307000001000000fffffffffffffffffffeff0653006500610072006300680000000000d707000001000000ffff\
  ffffffffffffffffffff000000000000000000000000000000000000000001000000ffffffffd207000001000000ffffffffd207000000000000\
  0010000001000000ffffffffffffffffe200000037000000e6000000ae0300000100000002000010040000000100000000000000000000000000\
  0000000000000000000001000000ffffffff04000000d1070000d5070000cd070000ce070000018000100000010000000500000056000000e700\
  0000120200000000000037000000e2000000f301000000000000010000004014005604000000fffeff0746006f006c0064006500720073000100\
  0000d107000001000000fffffffffffffffffffeff08430061006c0065006e0064006100720001000000d507000001000000ffffffffffffffff\
  fffeff094600610076006f007200690074006500730001000000cd07000001000000fffffffffffffffffffeff0e500072006900760061007400\
  6500200046006f006c0064006500720000000000ce07000001000000ffffffffffffffff0000000000000000d607000001000000000000000100\
  000001000000ffffffff00000000f3010000e2000000f70100000100000001000010040000000000000000000000000000000000000000000000\
  0000000002000000ffffffffd1070000d607000001000000d607000001000000ffffffffd1070000000000000080000000000000ffffffffffff\
  ffff00000000020000000400000006000000000000000100000004000000010000000000000000000000d0070000000000000000000000000000\
  0000000001000000d007000001000000d0070000000000000000000000000000

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

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

Отправлено: 11:21, 07-04-2011 | #1038


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


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

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


kotkovets, это конечно хорошо и спасибо за оперативную помощь, но к сожаленю в nsis я полнейший профан.
В вашем примере есть 2 различных файла, а в моём случае есть оригинальный файл и файл (надеюсь правильно выразиться) разницы с расширением tmp.patchfile который не является модифицированным, а лишь содержит информацию о модификации.
Я пробовал: сначала применить патч, затем утилитами извлечь повторно эту информацию (GenPat.exe, nsisPatchGen.exe, VPatchGUI) но в итогде потерпел с ними фиаско. Первые две файл *.pat вообще не создавали. Проверяли файлы (долго и упорно), проверили и все. VpatchGUI справлялся, но полученный на выходе файл ехе, dll и pat никоим образом в скрипт NSISa не прикрутился. (

возможно косяк в размере файлов. Всего должно пропатчиться 15 файлов среди которых 1 весит примерно 900мб.

Цитата:
GenPat.exe "*.gam" "*_new.gam" "Path.pat"
применимо для конкретного файла, а для директорий?

Отправлено: 12:03, 07-04-2011 | #1039


Аватара для kotkovets

Ветеран


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

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


a--e, я стандартным в поставке nsis пользуюсь,без глюков работает и для каждого файла нужен свой патчик,
прежде, чем патчить файл, плагин сверяет сумму файла, который нужно патчить по алгоритму MD5
должны быть: оригинал файла и патченный вариант оригинального файла - патченный файл создаете любыми средствами. GenPat.exe - генерит файл изменений на основе сравнения оригинального файла и патченного.
Предварительная подготовка, создаем батник:
GenPat.exe "путь\оригинальный файл" "путь\патченный файл" "Path.pat" т.е на выходе получается Path.pat - файл изменений относительно оригинала и патченного файла.
Далее в скрипте прописываем:
Код: Выделить весь код
OutFile "test.exe"
InstDir "C:\Test"

Section
  SetOutPath "$INSTDIR"
  File "путь к оригинальному файлу\file" ;засовываем файл в установщик
  InitPluginsDir
  File /oname=$PLUGINSDIR\path.pat "путь к path.pat" ;засовываем файл path.pat в установщик
  vpatch::vpatchfile "$PLUGINSDIR\path.pat" "путь к оригинальному файлу\file" "путь сохранения измененого оригинального файла\file_path"
  Delete "путь к оригинальному файлу\file" ;удаляем оригинальный файл
  Rename "путь сохранения измененного оригинального файла\file_path" "путь сохранения измененого оригинального файла\file" ;переименовываем патченый файл в оригинальное имя файла
SectionEnd
Цитата a--e:
...среди которых 1 весит примерно 900м»
)))) не делал такое, наверно долго файл .pat создаваться будет.

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

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

Отправлено: 13:21, 07-04-2011 | #1040



Компьютерный форум 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




 
Переход