Ru-Board.club
← Вернуться в раздел «Программы»

» NSIS (Nullsoft Scriptable Install System)

Автор: Victor_VG
Дата сообщения: 27.11.2014 20:18
nil998

Пока там поскольку мухобойка у хостера не понятно на что лается и не позволяет её выложить, а после как добавлю кое-что задуманное так и новое место для неё поищем. Задержки во времени в вызваны отказом оборудования - оно в состоянии ремонта.
Автор: Trex
Дата сообщения: 03.12.2014 22:17
Народ, может кто подскажет, можно ли решить проблему:
Есть инсталлятор созданный с помощью сабжа. В первом окне инсталлятора есть отмеченный чекбокс. Существует ли софт, позволяющий убрать отметку с чекбокса, без распаковки и перепаковки ?
Пробовал PE Explorer, Resource tuner, exescope - не видят они это окно, очевидно связанно с особенностью инсталлятора.

Пы.Сы. Проблема связанна с желанием репакеров поменять стартовую страницу на свою, если забыл убрать отметку с чекбокса - потом придется вычищать во всех браузерах сразу. А еще хуже если открываются при запуске 30 окон...
Пример:
http://rghost.net/59409765
Автор: Victor_VG
Дата сообщения: 04.12.2014 04:27
Trex

Нет, номер не выйдет - даже если и в хекс редакторе снимем, то проверку целостности не пройти. Только пересборка заново с правкой скрипта. А окошка обычно и нет там - банальный фрагмент кода.

Я как-то прикручивал к этому делу хвалёную UnChecky да вот за ней акромя надувания щёк и фанфар на деле ничего не стоит ибо она только визуально скрывает в чекбоксе галку не сбрасывая её, а вся требуха - рекламные тулбары, партнёрские приложения, любые шпионские модули и прочая дрянь замечательно в фоне устанавливаются и после их надо руками корчевать. Так что по моему она создана не для защиты от мусора, а как раз для его скрытой установки.
Автор: Trex
Дата сообщения: 04.12.2014 14:17
Victor_VG
а можно тогда ткнуть в меня ссылкой - как пересобрать и где "живет" скрипт ? А то я 7зипом раскрыл, а дальше...
Автор: qazwsxe
Дата сообщения: 04.12.2014 16:55
Trex

Цитата:
и где "живет" скрипт ?

У автора репака вестимо
Автор: Victor_VG
Дата сообщения: 04.12.2014 22:08
Trex

Скрипт это .nsi файл, но его бесполезно брать из установки - даже лучшие декомпиляторы восстановят его исходники не более чем на 30% и многое будет утрачено, в том числе исходники подключаемых скриптом файлов (инклюдов). Так что проще переписать с нуля.
Автор: MKN
Дата сообщения: 05.12.2014 09:16
Victor_VG

Цитата:
даже лучшие декомпиляторы восстановят его исходники не более чем на 30% и многое будет утрачено

Но общую суть инсталляции понять и самому доработать - можно
К примеру по ссылке Trex ( http://rghost.net/59409765 ) - это WinRar RePack by KpoJIuK, в нём скрипт выглядит так (ессно с кучей мусора) :
http://rghost.ru/private/59431266/3e1f110f676d0903d218a9597abfd6ac
Вполне можно доработать и переделать для себя...
Автор: Victor_VG
Дата сообщения: 06.12.2014 18:38
MKN

Тогда проще у автора попросить исходник и для себя поправить.

P.S.

Ладно, пойду компы перебирать - затеял Большую Замену Камней и мамок благо подбросили пару Core 2 Duo за помощь в разгребании завалов старого железа и как приз снял HP-го блейд-сервака C2D E8500, а C2D E7300 у меня давно с какого-то апгрейду валяется. Себе пару рабочих машин перебрал - главная возня как всегда кабели увязать - ожгутовать, и заусенцы с корпуса сточить, но ещё парочка желязяк приложения рук дожидается. Жаль на второй если камень менять придётся и планки новые искать имеющиеся на частотах > 840 - 850 МГц не заводятся, а ASUS P5Q /P5QL любят для C2D выставить частоту памяти или 1:1 или 6:5. Ну, для Kingston KVR800D2N6/2G частота 1066 или 1112 МГц хоть и намного выше номинальной, но они на ней запускаются, а вот самсунги/нанапйя отказываются напрочь. Так что тут остаётся или менять планки памяти, или ставить камень с меньшей FSB... Мне пришлось по второму пути идти - ставить Pentium DC E5800 - с ним всё заводится, но зато C2D E8500 он по LinX 0.65 уступает с разгромным счётом 12.7406 (пик 12.7798) GFlops против 19.6164 (пик 20.0526) GFlops, ну а у меня на 90% задачи счётные, так что Е5800 в них не намного лучшая затычка для сокета нежели полный калека целерон.
Автор: FanIT
Дата сообщения: 25.12.2014 19:05
Всем привет. Во время установки мне нужно распаковать архив freearc. Для этого в nsis использую плагин FreeArc. В windows 8 отрабатывает без проблем, но windows xp не чего не распаковывает и возвращает код -1.
Вот мой код.
FreeArc::ExtractFreeArcArchive /NOUNLOAD "$EXEDIR\Archive.arc" 1 "распаковка %s"
В чем может быть проблема?
Автор: Victor_VG
Дата сообщения: 26.12.2014 00:40
FanIT

Возможно что нет нужных вызовов API - я бы посмотрел системные требования плагина, и коли что воспользовался бы вызовом утилиты unarc взяв её у Булата - у меня версия 0.67 Alpha на XP работала. Да и плагин могли нечаянно собрать в компиляторе без поддержки ХР. Особенно коли за этим стоят шуточки Микрософт - у них начиная с 2012-й студии поддержка ХР возвращается в обновлениях компилятора, причём она у них ещё и не всегда работает - проходили.
Автор: megane68
Дата сообщения: 09.01.2015 20:29
Добрый вечер!
Подскажите пожалуйста какой- нибудь хороший помошник по созданию установщика для NSIS.
Главным образом чего не хватает в NSIS Quick Setup Script Generator:
1. Нет возможности задать в первом окне тип установки - для одного пользователя или для всех. Получается только или один тип или другой.
3. Не задаётся имя иконки в настройках. Для стиля Modern иконка всегда install-modern.ico. Каждый раз надо её менять, вместо того, чтобы прописать другое название.
Автор: Victor_VG
Дата сообщения: 09.01.2015 21:42
megane68

HM NIS. Мастер позволяющий создать заготовку встроен, а приёмы работы в нём со временем свои наработаете. Или как вариант есть возможность использовать IDE Eclipse через её плагин EclipseNSIS. Я для себя HM NIS пользуюсь ибо привык к нему.
Автор: megane68
Дата сообщения: 09.01.2015 23:22
Victor_VG
HM NIS у меня есть, но с ним придётся долго разбираться. Пытался воспользоваться его мастером, но после заполнения всех шагов, выдает ошибки связанные с MUI, что- то в этом роде.
В общем буду разбираться.
NSIS Quick Setup Script Generator подходит почти идеально для моих целей, за исключением дву вышеперечисленных пунктов.
Автор: Victor_VG
Дата сообщения: 09.01.2015 23:35
megane68

Значит пути к установленному NSIS не верные. С версией 2.46 работает как часы.
Автор: megane68
Дата сообщения: 09.01.2015 23:37

Цитата:
Значит пути к установленному NSIS не верные. С версией 2.46 работает как часы.

Да вроде в Program Files (x86) установлен. Или на 64-х битную систему надо 64-х битный NSIS устанавливать для него?
NSIS Quick Setup Script Generator наоборот, только с 32-х битной версией NSIS работает.
В настройках дефолтного профиля указаны правильные пути.

Добавлено:
Вот такая ошибка в конце.
Автор: Victor_VG
Дата сообщения: 10.01.2015 12:02
megane68

Он по умолчанию ищет путь C:\Program Files\NSIS, значит нужно его исправить в настройках. На х86 системе никакой ругани не было, у себя как разверну - погляжу. Пока ОС пустая точно не скажу.
Автор: megane68
Дата сообщения: 10.01.2015 15:47
Такая же ошибка при компиляции скрипта *.nsi из контекстного меню.
Скрипт создан в Quick Setup Script Generator и из его мастера он компилируется.


Цитата:
Error: resolving pre-page function "un.mui.InstFilesPre_62.7.5.9" in uninstall pages
Note: uninstall functions must begin with "un.", and install functions must not
Error - aborting creation process


NSIS ессно запускается, ибо контекстное меню от него.

Добавлено:
Удивительно, что из портабельного NSIS с portableApps всё компилирцется.
Автор: Victor_VG
Дата сообщения: 10.01.2015 18:01
megane68

Виртуализация путей под х64 ОС срабатывает. Я на этом попался с Far x86 и ярлыками. Развернул х64 Far и это явление исчезло.
Автор: megane68
Дата сообщения: 11.01.2015 04:59
Victor_VG
В общем HM NIS Edit так и не могу победить.
Но скрипт я всё таки с его помощью умудрился сделать и вручную подредактировать.
Скажите плиз, есть ли какой- нибудь к нему плагин, который позволяет скрипты делать в юникоде?
Автор: Victor_VG
Дата сообщения: 11.01.2015 09:29
megane68

К нему лично нет, да и зачем? Для создания UNICODE установки нет нужды и скрипт в UNICODE хранить надо только чтобы и компилятор и плагины UNICODE поддерживали, а скрипт компилятору можно любой скормить лишь бы он его без ошибок считал.
Автор: megane68
Дата сообщения: 11.01.2015 14:16
Victor_VG
Ну не скажите. Я указываю пути к папкам в которых лежат логотипы с юникодовыми названиями и в скрипте HM NIS Edit они получаются умляутами. Согласитесь, прописывать вручную несколько десятков из 1500 названий, занятие не совсем благородное.
Опять же, если установить английский язык, то русские то анотации на кирилице будут крякозябрами в английской локали.
Вот если бы редактор не прописывал файлы в скрипт, а ориентировался только на указанные директории, тогда его скрипт можно было бы NSIS Unicode скормить.
Вот сейчас у меня такой например фрагмент скрипта:
SetOutPath "$INSTDIR\encoders\x86"
File "..\foobar2000\$STANDART\encoders\x86\celtenc.exe"
File "..\foobar2000\$STANDART\encoders\x86\enc_fhgaac.dll"
File "..\foobar2000\$STANDART\encoders\x86\fhgaacenc.exe"

Если бы можно было просто указать папку, без перечня файлов:
SetOutPath "$INSTDIR\encoders\x86"
Тогда остальное можно было бы в текстовом редакторе в UTF-8 прописать и нет проблем.
Автор: Victor_VG
Дата сообщения: 11.01.2015 14:42
megane68

А вы установите UNICODE для локали - по умолчанию в Win системах используется кодовая страница (СР) ANSI (CP-1251), но NTFS может кодировать имя файла и в ОЕМ (CP-866) - решение о использовании СР принимает драйвер, но если у вас СР-1251, в файловой системе (ФС) имя файла кодировано в СР-866, то подобные явления возможны. На UNIX я с этим не раз встречался. Особенно при чтении флешек - получить с них "кракозябры" при чтении оглавления носителя с русскими именами файлов можно с вероятностью более 0,8. И решением проблемы стало выставление настройки локали в UTF-8 после чего у меня все носители читаются нормально на любой из UNIX машин, даже на старой SUN SPARCstation 10 под SunOS 2.4 у которой номинально для работы с кириллицей есть только KOI-8R что означает что имена файлов в ОЕМ будут читаемы, а в ANSI увидим на экране мусор. Пришлось прикрутить к ней UTF-8 и проблема ушла в прошлое.
Автор: megane68
Дата сообщения: 11.01.2015 15:17
Victor_VG
Не, эта катавасия с локаями неудобна.
Я думаю надо копнуть в NSIS скрипты. Как можно прописать директорию без перечня входящих в ней файлов. Ну не может быть такого, что так нельзя сделать.
А потом в текстовом редакторе конвертнуть в юникод и сделать спокойно надписи хоть на португальском или арабском.
Автор: leserg73
Дата сообщения: 11.01.2015 17:00

Цитата:
Как можно прописать директорию без перечня входящих в ней файлов.

Об этом написано в справке NSIS. Необходимо использовать ключ /r. Если справку на английском осилить затруднительно, то почитайте на русском - Справочник по NSIS.

С кодировками тоже все просто. Если сценарий в кодировке ANSI (CP-1251), то компилируете его в NSIS ANSI. Можете преобразовать кодировку сценария в UTF-8 и компилировать в NSIS Unicode.

Если использовать NSIS v3.0, то поддержка Unicode добавляется прямо в сценарии (установкой для атрибута Unicode значения true или false).
Автор: Victor_VG
Дата сообщения: 11.01.2015 17:04
megane68

Ну, локали всё одно надо правильно отстроить или проблемы с именами файлов вылезут в другом месте. По мне проще от них сразу избавится чем после каждый раз с ними возится.
Автор: megane68
Дата сообщения: 11.01.2015 18:13
leserg73
Спасибо!
Изучаю потихоньку, но мне как профану сложновато вычленить, что- то нужное из сего чтива. Видимо пока не добрался до этого места.
Со сценарием в ANSI проблема, если пользуешься HM NIS Edit. Я уже выше присал, что у меня названия логотипов есть с португальскими и прочими прибамбасами, например буква А с умляутом над буквой. И таких примеров много. HM NIS такой сценарий преобразовывает в ANSI и получается буква А без умляута. Когда сценарий уже готов, вычислить такой файл можно только по ошибкам при компиляции. И вот сидишь и пятьдесят названий после каждой ошибки компиляции правишь.
Занятие я бы сказал не для слабонервных. )))

Victor_VG
Проблемы с кодировками неизлечимы до тех пор, пока все разработчики осей и софта не соберутся вместе и не придут к единому решению. До тех пор либо будут крякозябры в отдельных продуктах, либо оси будут глючить от твиков и костылей.
Поэтому я изначально хочу побороть этот вопрос. На корню так сказать.


Добавлено:
leserg73
Ага, нашёл:

Цитата:
SetOutPath "$INSTDIR"
File /r "C:\Install\*"

Теперь надеюсь могу не обращать внимание на кодировку сценария. Просто после редактирования конвертирую его в юникод и порядок - не надо править названия файлов.
Автор: Victor_VG
Дата сообщения: 11.01.2015 22:14
megane68

С договорённостью вы правы, но и человеческий фактор не надо скидывать со счетов. Я не раз встречал переводы сделанные с кодировкой ресурсов в ANSI (для Win9x/ME) и с костылями в виде правки большинства кодовых страниц ОС на СР-1251 которые прикручивали к UNICODE ОС платформы WINNT под предлогом "Всё работает! Просто поставьте этот твик реестра и кракозябров не будет!" вместо перевода ресурсов в UNICODE - налицо откровенная лень горе-переводчика и вся ОС стоит на ушах.
Автор: megane68
Дата сообщения: 11.01.2015 23:13
Victor_VG
Ну это решение чисто для себя для любимого.
А вот что касается инсталляторов, после всех твиков у тебя будет всё ОК, а пользователи скачавшие такую прогу будут мучатся с крякозябрами.
Поэтому я предпочитаю не трогать ось, чтобы били видны проблемы. В этом случае их можно устранить.
Теперь у меня проблема решилась наилучшим образом. Помимо того, что я избегаю крякозябров на английской локали, я попутно избавился от длиннющего списка файлов на 6000 строк. В результате получил сценарий из 130-ти строк.
Странно, что HM NSI Edit не имеет такой функции или же надо глубоко копаться.
Автор: Victor_VG
Дата сообщения: 11.01.2015 23:56
megane68

Нет, он скорее просто редактор текста с доп. возможностями, а потому в нём много чего нет, да и писался он ещё для ANSI NSIS v2.0.
Автор: megane68
Дата сообщения: 12.01.2015 00:45
Victor_VG
Как то всё запутано. Подозреваю, что все корифей предпочитают вручную писать сценарии. А ведь казалось бы, ничего не стоит написать помощника для новичков.
Вот я, сделал несколько сценариев и на их примере уже какие то функции знаю. А копаться в хелпе очень уж утомительно без наглядного примера.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

Предыдущая тема: The Bat!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.