Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Я, видимо, самый смелый. Попробую вступить в диалог :biggrin:
мне не подходит инструкция. »
Ссылку на инструкцию
а целый интерфейс пользователя »
Приведите пример "интерфейса пользователя", т.к. я сомневаюсь, что понимаю данное выражение так же, как вы его понимаете
который я смог бы потом подключать в коде непосредственно самого установщика »
Вряд ли вы сможете подключить к установщику целый отдельный диалог из ресурса EXE файла всего интерфейса NSIS, если я правильно понял вашу задачу
Чем не устраивают custom странички ??
Creator000
31-08-2012, 21:57
K.A.V., nsDialogs: Создаем собственные страницы инсталлятора
Creator000, если вам "не подходит инструкция" - читайте оригинал на английском
Что вам в ней не нравится? Там описаны основные моменты для работы с nsDialogs, всё остальное - исключительно ваша фантазия
Если вы будете задавать вопросы типа "как создать радио кнопку", то ответа я вам не дам, т.к. там это описано
Так описано, как получать и обрабатывать состояния элементов, как привязать событие элемента к какой-либо функции
Конкретный вопрос задайте...Только просить готовый код, как обычно, не нужно, думаю сами уже поняли, что здесь помогут только в конкретном вопросе, а не в предостовлении готовых кодов
Creator000
31-08-2012, 22:49
K.A.V., я не прошу готовый код - от вас не дождешься.
в справочнике:
подключаем MUI.nsh (это интерфейс пользователя я правильно понимаю?)
потом страницы готовые с помощью !insertmacro
и тут мы решили между ними сделать свою страничку. пишем page и функции
А мне не нужно создавать отдельные странички. мне нужно написать себе свой интерфейс My_MUI.nsh
а потом уже его подключать непосредственно к самому коду конкретного инсталлятора.
чтобы я с помощью команд !insertmacro подключал свои уже готовые странички.
My_MUI.nsh - код моих страничек
Opera.nsh - код самого установщика для оперы.
K.A.V., я не прошу готовый код - от вас не дождешься. »
Да ладно вам...Почитайте тему внимательно, я здесь уже столько готовых кодов привёл, написанных с 0...
Я могу привести готовый код участинку, если вижу, что он что-то сделал для реализации нужного ему функционала.
Просто у меня нет желания тратить свою время на помощь ленивым людям, вот и всё
В этом вопросе меня поддержит любой участник форума, даже и не сомневаюсь, ленивых нигде не любят, и уж тем более в программировании, где нужно работать мозгами
мне нужно написать себе свой интерфейс My_MUI.nsh »
Ну так, копируйте файл, открывайте, сидите разбирайтесь в коде и делайте свой интерфейс, в чем пробелма то?
это интерфейс пользователя я правильно понимаю? »
Что касается именно "интерфейса", то там прописаны функции по установке цветов и установке текстов на элементы, это вкратце
По сути, этот файл содержит настройки внешнего вида интерфейса, но данный файл не способен вам предоставить возможность создания страничек по типу тех стандартных в NSIS, подгружая файл ресурса диалога из EXE файла (как вы хотите сделать, если я правильно понял)
Что содержится ещё в данном файле -можете посмотреть всё сами, октрывайте и изучайте
чтобы я с помощью команд !insertmacro »
Стандартные странички "Приветствие", "Лицензия" и т.д., вы не сможете по типу таких страничек добавить свои, поймите, это делается на уровне компилятора NSIS и вы можете только изменить внешний вид данных страничек и расположение элементов + размеры окна самого интерфейса, это можно сделать подправив EXE файл оболочки интерфейса (modern.exe к примеру файл)
Можете скачать к примеру Ultra Modern UI интерфейс, там интерфейс полностью на изображениях сделан красиво...
Я же вам сразу сказал, что свой интерфейс вы не напишите, вы можете изменить уже существующий внешний вид и расположение элементов на стандартных странчках, не более
Я одного не пойму, чем вас не устраивает создание страничек с помощью команды CustomPage??
Что в них не так?
Creator000
31-08-2012, 23:39
В этом вопросе меня поддержит любой участник форума, даже и не сомневаюсь, ленивых нигде не любят, и уж тем более в программировании, где нужно работать мозгами »
Я согласен с вами. просто когда не можешь врубиться в тему всякое желание пропадает.
Я одного не пойму, чем вас не устраивает создание страничек с помощью команды CustomPage??
Что в них не так? »
Я не знаю как вам объяснить.
!insertmacro MUI_PAGE_WELCOME - вот хочу чтобы там была моя картинка и повествование.
мне Все время под !insertmacro MUI_PAGE_WELCOME писать page? или можно ее изменить как мне хочется?(мой фон, мои icon, мое описание)
аналогично на других страницах. всякие свистерельки-пердельки прикручивать к страницам (чекбоксы, радио)
мне нужно будет пожизненно это приписывать или можно где то это прописать (в MUI я полагаю) ?
вот хочу чтобы там была моя картинка »
Скажите мне, неужели в справочнике нет информации, как поставить свою картинку на страничку приветствия??
Серьёзно, похоже просто на издевательство...
Команда MUI_WELCOMEFINISHPAGE_BITMAP добавляет свою картинку на страницах «Приветствия» и «Завершения»:
!define MUI_WELCOMEFINISHPAGE_BITMAP "Моя картинка.bmp"
По умолчанию: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp
Рекомендуемый размер картинки 164x314
мое описание »
Команда MUI_WELCOMEPAGE_TITLE помещает заданный текст в титульный заголовок страницы.
Команда MUI_WELCOMEPAGE_TEXT помещает заданный текст в нижний заголовок страницы.
!define MUI_WELCOMEPAGE_TITLE "Добро пожаловать! Это справочник по NSIS"
!define MUI_WELCOMEPAGE_TEXT " ЭТОТ СПРАВОЧНИК ПО NSIS ПОЛЕЗЕН НЕ ТОЛЬКО ДЛЯ НАЧИНАЮЩИХ, НО И ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ. \
Советую этот справочник освоить, чтобы вы нас радовали \
красивыми инсталляторами своих приложений!"
Привет народ, :)
Напомните плиз как запустить консольную утиль при инсталляции в скрытом режиме?!
MaGoth, ExecCmd plug-in (http://nsis.sourceforge.net/ExecCmd_plug-in)
Creator000
02-09-2012, 22:13
K.A.V.,
вопрос про Page custom fnCustomInit fnCustomDestroy
fnCustomInit fnCustomDestroy это обязательно? а бывают еще какие нибудь функции у page custom? или для создания страниц этого хватит?
Я просто волнуюсь, вдруг есть что нибудь более подходящее мне
Creator000, я же вроде в справочнике описал, или нет?
fnCustomInit - обязательно, в ней мы вызываем инициализацию диалога и потом функцию показа диалога (можно внести изменения в файл диалога перед показом, например)
fnCustomDestroy - в этой функции мы обрабатываем статусы элементов и например, значения того, что пользователь ввёл в текстовые элементы, если таковые имеются
Обе функции обязательны
Creator000
02-09-2012, 22:41
K.A.V., я же вроде в справочнике описал, или нет? »
Статью про nsDialogs писали не вы.
fnCustomDestroy - в этой функции мы обрабатываем статусы элементов и например, значения того, что пользователь ввёл в текстовые элементы, если таковые имеются
Обе функции обязательны »
А если мне ненужно проверять и сообщать пользователю что он ввел и отметил все равно нужна последняя функция?
Статью про nsDialogs писали не вы. »
А я думал вы про IO спрашиваете))
В nsDialogs чуть по другому, там можно обойтись без второй функции и назначать на событие для каждого элемента выполнение функции
А если мне ненужно проверять и сообщать пользователю что он ввел и отметил все равно нужна последняя функция? »
В nsDialogs вторая функция вообще не обязательна
В IO вторая при таком раскладе не обязательна
Creator000
02-09-2012, 23:00
K.A.V., я уточню
fnCustomDestroy - чисто проверяет что ввел пользователь и может это показать отдельным окошком
http://i43.fastpic.ru/big/2012/0902/d6/f99728c70990b8a46fbe5015b6b623d6.png
вообще она может выводить всякого рода окна в любом месте. это все? тогда она мне не нужна.
а например она может вывести окно в случае если пользователь ввел не правильно что -то или не ввел вообще ничего и утановщик должен будет сказать, чтобы пользователь исправил свою ошибку.
а например она может вывести окно в случае если пользователь ввел не правильно что -то или не ввел вообще ничего и утановщик должен будет сказать, чтобы пользователь исправил свою ошибку. »
Читайте справочник, команду StrCmp
Читайте статус элемента, затем сравнивайте значения командой StrCmp
Creator000
02-09-2012, 23:07
K.A.V., nsDialog можно редактировать в HM NIS Edit?
столкнулся с такой ошибкой Usage: SetCompress (off|auto|force)
после добавления SetCompress /SOLID lzma (по вашей методичке смотрел). подскажите пожалуйста что не так.
K.A.V., nsDialog можно редактировать в HM NIS Edit? »
Нет...
В nsDialogs вы указываете координаты элемента при его создании, nsDialogs не использует INI файлы
А вот IO использует INI файлы в качестве настроек диалога
Creator000
02-09-2012, 23:28
K.A.V., можете считать меня глупым. но я не понимаю.
не работает SetCompress /SOLID lzma
с таким кодом
!include "MUI.nsh"
SetCompress off
!insertmacro MUI_PAGE_WELCOME
Page custom fnCustomInit fnCustomDestroy
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Russian"
Name "Winreview.ru"
OutFile "winreview.exe"
ShowInstDetails show
Var Dialog
Function fnCustomInit
nsDialogs::Create 1018
Pop $Dialog nsDialogs::Show
FunctionEnd
Function fnCustomDestroy
FunctionEnd
Section DetailPrint "Hello from winreview.ru"
SetAutoClose false
SectionEnd
можете считать меня глупым. но я не понимаю. не работает SetCompress /SOLID lzma
с таким кодом
SetCompress off »
Тактично будем считать тебя невнимательныи и ленивым, т.к. поиск в теме и справочнике (4.8.2.3 SetCompress) , ты упорно игнорируешь...
А если поискать, секунд десять, то можно увидеть, что для сжатия используется (как вариант) :
SetCompressor /SOLID LZMA
SetCompressorDictSize 64 ;или 128, зависит от оперативки компа, максимум 170
SetDatablockOptimize on
И как можно что то сжать, если ты установил SetCompress off ?
Creator000
03-09-2012, 14:37
MKN, И как можно что то сжать, если ты установил SetCompress off ? »
дело в том то, что я убрал off. и поставил /SOLID LZMA. - не работает. если это не рабочий вариант зачем его писать в справочнике?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC