PDA

Показать полную графическую версию : [архив].: NSIS - все вопросы :.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 [156] 157 158 159 160 161 162 163 164 165 166 167 168 169 170

K.A.V.
31-08-2012, 21:12
Я, видимо, самый смелый. Попробую вступить в диалог :biggrin:

мне не подходит инструкция. »
Ссылку на инструкцию

а целый интерфейс пользователя »
Приведите пример "интерфейса пользователя", т.к. я сомневаюсь, что понимаю данное выражение так же, как вы его понимаете

который я смог бы потом подключать в коде непосредственно самого установщика »
Вряд ли вы сможете подключить к установщику целый отдельный диалог из ресурса EXE файла всего интерфейса NSIS, если я правильно понял вашу задачу

Чем не устраивают custom странички ??

Creator000
31-08-2012, 21:57
K.A.V., nsDialogs: Создаем собственные страницы инсталлятора

K.A.V.
31-08-2012, 22:19
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.
31-08-2012, 23:26
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 я полагаю) ?

K.A.V.
31-08-2012, 23:56
вот хочу чтобы там была моя картинка »
Скажите мне, неужели в справочнике нет информации, как поставить свою картинку на страничку приветствия??
Серьёзно, похоже просто на издевательство...

Команда 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
02-09-2012, 20:33
Привет народ, :)
Напомните плиз как запустить консольную утиль при инсталляции в скрытом режиме?!

K.A.V.
02-09-2012, 21:11
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? или для создания страниц этого хватит?
Я просто волнуюсь, вдруг есть что нибудь более подходящее мне

K.A.V.
02-09-2012, 22:31
Creator000, я же вроде в справочнике описал, или нет?

fnCustomInit - обязательно, в ней мы вызываем инициализацию диалога и потом функцию показа диалога (можно внести изменения в файл диалога перед показом, например)

fnCustomDestroy - в этой функции мы обрабатываем статусы элементов и например, значения того, что пользователь ввёл в текстовые элементы, если таковые имеются

Обе функции обязательны

Creator000
02-09-2012, 22:41
K.A.V., я же вроде в справочнике описал, или нет? »
Статью про nsDialogs писали не вы.

fnCustomDestroy - в этой функции мы обрабатываем статусы элементов и например, значения того, что пользователь ввёл в текстовые элементы, если таковые имеются
Обе функции обязательны »
А если мне ненужно проверять и сообщать пользователю что он ввел и отметил все равно нужна последняя функция?

K.A.V.
02-09-2012, 22:50
Статью про 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
вообще она может выводить всякого рода окна в любом месте. это все? тогда она мне не нужна.
а например она может вывести окно в случае если пользователь ввел не правильно что -то или не ввел вообще ничего и утановщик должен будет сказать, чтобы пользователь исправил свою ошибку.

K.A.V.
02-09-2012, 23:04
а например она может вывести окно в случае если пользователь ввел не правильно что -то или не ввел вообще ничего и утановщик должен будет сказать, чтобы пользователь исправил свою ошибку. »
Читайте справочник, команду 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.
02-09-2012, 23:13
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

MKN
03-09-2012, 09:10
можете считать меня глупым. но я не понимаю. не работает 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