Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Надеюсь они не последние. »
Не последние, обещаю.
Шкуру надеть на инсталлятор ?
Painkiller
11-01-2010, 01:40
Шкуру надеть на инсталлятор ? »
Ага. Желательно подробнее. А также буду ждать новых уроков.
Шкуры я сам никогда не надевал. Сегодня вечером попробую и напишу, как это делается.
Скачиваем SkinCrafter Plugin, устанавливаем, в функции .onInit прописываем
NSIS_SkinCrafter::skin /NOUNLOAD "<Полный путь к файлу скина>"
Насчет имени dll могу ошибаться, уже не помню её имя :)
И не забудьте скачать сам скин :) :) :)
Painkiller
11-01-2010, 20:25
K.A.V. ,hb860, почему то у меня не получается.
Если так :
Function .onInit
SetOutPath $TEMP
NSIS_SkinCrafter::skin /NOUNLOAD $TEMP\V-touch.skf
FunctionEnd.
Компилируется но никаких внешних изменений нету.
Если так :
Function .onInit
SetOutPath $TEMP
File /oname=V-touch.skf "V-touch.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD $TEMP\V-touch.skf
Delete $TEMP\V-touch.skf
FunctionEnd
Выбивает ошибку при компиляции . Что делать? Помогите?
hb860, я никогда не пользовался программой NSIS , но возник такой вопрос: можно ли с помощью NSIS создать Welcom Center ( запуск программ из него , или запуск компонентов панели управления ) для Windows XP , если да , то где можно почитать про команды и компиляцию , у меня есть уже готовый ( разковыряный ) , но что то подобное мне создать никак не удается ? заранее благодарен
Инструкция по использованию скинов :)
1. Качаем с этой (http://www.skincrafter.com/download) странички "Unicode/ANSI NSIS SkinCrafter Plugin" (если скин не подгружается, попробуйте эту (http://nsis.narod.ru/files/nsis_plugins/nsis_skincrafter_plugin.rar) библиотеку), открываем загруженный архив, распаковываем библиотеку "NSIS_SkinCrafter_Plugin.dll" в каталог с плагинами NSIS (\Program Files\NSIS\Plugins)
2. Загружаем какой-либо файл скина из библиотеки (http://www.skincrafter.com/skins)
3. Добавляем данный кусок кода в NSIS
Function .onInit
SetOutPath $TEMP
File /oname=TEST.skf "TEST.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD "$TEMP\TEST.skf"
FunctionEnd
И не забудьте выгрузить SkinCrafter
Function .onGUIEnd
NSIS_SkinCrafter_Plugin::destroy
FunctionEnd
В данном коде предположено, что файл скина "TEST.skf" находится в одной папке с NSIS скриптом
Для того, чтобы скин подгружался и в деинсталляторе, добавьте следующие функции
Function un.onInit
SetOutPath $TEMP
File /oname=TEST.skf "TEST.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD "$TEMP\TEST.skf"
FunctionEnd
Function un.onGUIEnd
NSIS_SkinCrafter_Plugin::destroy
FunctionEnd
P.S.
На некоторых сборках ОС скин может не примениться, т.к. удалены некоторые библиотеки
На момент редактирования поста мной выявлена 1 DLL, без которой скины не подгружаются - mfc71.dll, она должна находиться в директории System32
Если вы не уверены, что данная библиотека присутствует в системе, то добавьте данную библиотеку в пакет инсталлятора и пропишите команду распаковки данной библиотеки в System32 каталог перед тем, как вызовите функцию загрузки скина
Можно конечно обойтись без распаковки библиотеки в системный каталог, для этого поместите mfc71.dll в одну директорию с пакетом инсталлятора
Painkiller, ваши ошибки
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD $TEMP\V-touch.skf
и ещё 1 ошибка, вы же не распаковали файл скина, после команда "SetOutPath $TEMP" должна быть команда распаковки
Painkiller
12-01-2010, 19:12
hb860, у меня вызывает ошибку при компиляции именно вот эта строчка :
File /oname=V-touch.skf "V-touch.skf"
Вот что пишет об ошибке :
Function: ".onInit"
SetOutPath: "$TEMP"
File: "V-touch.skf" -> no files found.
Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
/oname=outfile one_file_only)
Error in script "C:\2.nsi" on line 94 -- aborting creation process
А вот мой код :
Function .onInit
SetOutPath $TEMP
File /oname=V-touch.skf "V-touch.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD "$TEMP\V-touch.skf"
FunctionEnd
Function .onGUIEnd
NSIS_SkinCrafter_Plugin::destroy
FunctionEnd
Habetdin
12-01-2010, 19:28
Painkiller, File: "V-touch.skf" -> no files found. »
"Файл не найден." У вас рядом со скриптом нет файла V-touch.skf.. :)
Painkiller
12-01-2010, 19:35
Habetdin , большое спасибо! Вот в чём собака зарыта. Его нужно возле скрипта держать. Вот моя ошибка была сс самого начало. Я же его держал в папке которую я назначил за $TEMP. Но жалко то что скин на семёрке не пашит :(
Painkiller
14-01-2010, 00:50
K.A.V. , странно почему то скин и на чистой xp sp2 не пашит :(
Попробуйте использовать эту (http://nsis.narod.ru/files/nsis_plugins/nsis_skincrafter_plugin.rar) библиотеку
И ещё, в системе должна присутствовать (в System32 каталоге) библиотека mfc71.dll, если её нет, то скин подгружаться не будет
Painkiller
14-01-2010, 18:20
K.A.V. , скин заработал как я подменил на вашу предложенную библиотеку на семёрке, но только один. А остальные видно что просто не поддерживаются. У них классический вид . В System32 библиотека mfc71.dll в семёрке присутствует .
Возможно установщик защитить паролем от распаковки ?
Возможно установщик защитить паролем от распаковки ? »
Распаковать NSIS инсталлятор можно с помощью 7-zip, здесь пароль никак не поставить, на сколько мне известно...однако можно поставить запрос пароля, если производится запуск вашего пакета инсталлятора
Painkiller
14-01-2010, 21:12
однако можно поставить запрос пароля, если производится запуск вашего пакета инсталлятора »
А можете показать на примере как прикрутить такую финчу ?
Самый простой пример, это с использованием плагина DialogsEx (http://winxpregp.narod.ru/mfiles/NSIS/dialogsex.zip)
${InputPwdBox} "Заголовок" "Введите пароль" "" "10" "" "" 0
StrCmp $0 "Это пароль" okPass 0
MessageBox MB_ICONSTOP|MB_YESNO "Пароль неверный!!$\r$\nПовторить ввод пароля?" IDYES -2
quit
okPass:
В представленном коде, число 10 соответствует максимально возможному количеству вводимых символов
Число 0, в самом конце первой строчки означает, что введёное пользователем значение следует поместить в переменную $0
Painkiller
15-01-2010, 00:00
Эxх. Побольше бы такой информации и уроков !!!
Эxх. Побольше бы такой информации и уроков !!! »
Так кто вам не даёт задавать вопросы :)
Спрашивайте, а мы ответим/поможем на сколько знаний хватит ;)
Painkiller
15-01-2010, 01:00
K.A.V. , я просто не знаю возможностей языка NSIS. Можете хоть описать хоть в вкратце что ещё можно прикрутить к установщику ? Хотя знаю что всё описать не возможно, но из самое интересного?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC