[архив].: NSIS - все вопросы :.
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
yyv, Я все прекрасно понял, что вы хотите! поэтому предложил 1044 в своем примере
Вы не добьетесь желаемого результата стандартными средствами NSIS, для этого есть плагины
или написать свой плагин, коль разбираетесь в языках программирования, хотя не факт,
каким то образом можно сделать плагином system -
входящий в комплект стандартной поставки NSIS - вызовами WinAPI.
Я имею ввиду, 1044 растянуть до кнопок, а на поверх кнопок, наложить фоновую картинку
под цвет основного фона, примерно как это сделано в ExperienceUI
и за одно можно наложить текстуру кнопок под цвет фона - есть такой плагин на офф.сайте
Вы не добьетесь желаемого результата стандартными средствами NSIS, для этого есть плагины
или написать свой плагин, коль разбираетесь в языках программирования, хотя не факт,
каким то образом можно сделать плагином system -
входящий в комплект стандартной поставки NSIS - вызовами WinAPI.
Я имею ввиду, 1044 растянуть до кнопок, а на поверх кнопок, наложить фоновую картинку
под цвет основного фона, примерно как это сделано в ExperienceUI
и за одно можно наложить текстуру кнопок под цвет фона - есть такой плагин на офф.сайте
-
yyv
Re: [архив].: NSIS - все вопросы :.
kotkovets, дело в том, что мне нужно не просто растянуть контрлол на весь диалог, а мне нужна возможность рисовать необходимые мне элементы в нижней части.
например добавить чекбокс между кнопками
или возле кнопки добавить лейбл и картинку
и я уже завис совсем и ни чего не понимаю...
вот к примеру
я создаю страницу
Код:
и в диалоге у меня к примеру контрол Static например 1149
если я добавлю
после Show
nsDialogs::Create 1149 то это же я так понимаю не правильно....
как мне на этом контроле на одной страничке также с помощью nsDialogs (ну или с любой другой помощью) нарисовать нужные мне элементы?
или я все таки не понимаю самой сути процесса?
появилась идея.. попробую вечером...
но вопрос открыт
например добавить чекбокс между кнопками
или возле кнопки добавить лейбл и картинку
и я уже завис совсем и ни чего не понимаю...
вот к примеру
я создаю страницу
читать дальше »
Код:
Код: Выделить всё
; dialog create function
Function fnc_CustomLicensePage_Create
; === CustomLicensePage (type: Dialog) ===
nsDialogs::Create 1044
Pop $hCtl_CustomLicensePage
${If} $hCtl_CustomLicensePage == error
Abort
${EndIf}
.....
......
.....
FunctionEnd
; dialog show function
Function fnc_CustomLicensePage_Show
Call fnc_CustomLicensePage_Create
nsDialogs::Show $hCtl_CustomLicensePage
FunctionEndи в диалоге у меня к примеру контрол Static например 1149
если я добавлю
после Show
nsDialogs::Create 1149 то это же я так понимаю не правильно....
как мне на этом контроле на одной страничке также с помощью nsDialogs (ну или с любой другой помощью) нарисовать нужные мне элементы?
или я все таки не понимаю самой сути процесса?
появилась идея.. попробую вечером...
но вопрос открыт

-
MKN
Re: [архив].: NSIS - все вопросы :.
Цитата kotkovets:
nsExec::Exec "file.cmd"
спасибо, это то что нужно
но зачем нужен
Код:
?
nsExec::Exec "file.cmd"
[архив].: NSIS - все вопросы :.
спасибо, это то что нужно
но зачем нужен Код:
Код: Выделить всё
Pop $0?
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата vahe-91:
спасибо, это то что нужно но зачем нужен
В стек возвращается код возврата запускаемой проги, и следует, что мы можем с
уверенностью сказать, как отработала прога.
Код:
Сделай успешное выполнение команды, а затем заведомо не успешное. Сравни циферки...
У меня так конструктор на руборде организован на кодах возврата - и я узнаю сразу в чем проблема
спасибо, это то что нужно но зачем нужен
[архив].: NSIS - все вопросы :.
В стек возвращается код возврата запускаемой проги, и следует, что мы можем с
уверенностью сказать, как отработала прога.
Код:
Код: Выделить всё
Pop $0
MessageBox MB_OK "$0"Сделай успешное выполнение команды, а затем заведомо не успешное. Сравни циферки...
У меня так конструктор на руборде организован на кодах возврата - и я узнаю сразу в чем проблема
-
MKN
Re: [архив].: NSIS - все вопросы :.
kotkovets,
Вроде разобрался с этим моментом (полтыщи строк, путаюсь очень...). Спасибо. Теперь никак не получается закрыть кастомную страницу (по сути закрыть скрипт, выйти из него) после :
Код:
Т.е. по окончании работы.
Почему то вообще не действует :
Код:
Вроде разобрался с этим моментом (полтыщи строк, путаюсь очень...). Спасибо. Теперь никак не получается закрыть кастомную страницу (по сути закрыть скрипт, выйти из него) после :
Код:
Код: Выделить всё
MessageBox MB_OK "Файл успешно создан!" IDOKТ.е. по окончании работы.
Почему то вообще не действует :
Код:
Код: Выделить всё
Section
SetAutoClose true
SectionEnd-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата vahe-91:
из-за чего может создание деинсталятора задержатся примерно на пол минуты ?
Трудно судить почему, из-за вопроса только, может какие процессы до создания идут, скрипт в студию, а там видно будет...
из-за чего может создание деинсталятора задержатся примерно на пол минуты ?
[архив].: NSIS - все вопросы :.
Трудно судить почему, из-за вопроса только, может какие процессы до создания идут, скрипт в студию, а там видно будет...
-
sawe
Re: [архив].: NSIS - все вопросы :.
Цитата kotkovets:
Трудно судить почему, из-за вопроса только, может какие процессы до создания идут, скрипт в студию, а там видно будет...
Скрипт не могу показать. В скрипте деинсталятора примерно две тысячи строк, для удаления ключей из реестра, это может быть причиной ?
Трудно судить почему, из-за вопроса только, может какие процессы до создания идут, скрипт в студию, а там видно будет...
[архив].: NSIS - все вопросы :.
Скрипт не могу показать. В скрипте деинсталятора примерно две тысячи строк, для удаления ключей из реестра, это может быть причиной ?
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
sawe, Все хорошо, но есть серьезные недостатки,
Код:
Смотрим лог компилятора:
Код:
О чем это говорит? У вас не определены настройки по умолчанию, если в скрипте не задать константы.
Например, я в скрипте не указал цвет
Код:
то в хидере, делаем проверку на наличие этой константы и если она не указана, объявлем константу и задаем значение константы по умолчанию.
Код:
Дальше не стал смотреть... sawe в топку!
Дорабатывайте!!!
Код:
Код: Выделить всё
!include "MUI2.nsh"
!insertmacro MUI_PAGE_README "Читать.txt"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
ShowInstDetails show
OutFile test.exe
Section
SectionEndСмотрим лог компилятора:
Код:
Код: Выделить всё
4 warnings:
LangString "MUI_INNERTEXT_README_BOTTOM" is not set in language table of language Russian
LangString "MUI_TEXT_README_TITLE" is not set in language table of language Russian
LangString "MUI_TEXT_README_SUBTITLE" is not set in language table of language Russian
LangString "MUI_INNERTEXT_README_TOP" is not set in language table of language RussianО чем это говорит? У вас не определены настройки по умолчанию, если в скрипте не задать константы.
Например, я в скрипте не указал цвет
Код:
Код: Выделить всё
!define MUI_READMEPAGE_BGCOLORто в хидере, делаем проверку на наличие этой константы и если она не указана, объявлем константу и задаем значение константы по умолчанию.
Код:
Код: Выделить всё
!ifndef MUI_READMEPAGE_BGCOLOR
!define MUI_READMEPAGE_BGCOLOR 0xFFFFFF
!endifДальше не стал смотреть... sawe в топку!
Дорабатывайте!!!-
yyv
Re: [архив].: NSIS - все вопросы :.
Цитата kotkovets:
удаление плагом аль стандартными командами? циклы есть?
плагинов нет, есть goto
Код:
примерно тисяча строк под setregview 32 и одно и тоже под setregview 64. В секции деинсталятора только это и несколько rmdir и unregdll.
удаление плагом аль стандартными командами? циклы есть?
[архив].: NSIS - все вопросы :.
плагинов нет, есть goto
Код:
Код: Выделить всё
setregview 32
deleteregkey hklm "ключь"
setregview 64
deleteregkey hklm "ключь"примерно тисяча строк под setregview 32 и одно и тоже под setregview 64. В секции деинсталятора только это и несколько rmdir и unregdll.
-
sawe
Re: [архив].: NSIS - все вопросы :.
Ясно, если стока строк - то только оптимизация кода немного может.
Деинсталлятор то компилится на "горячую руку"...поэтому такая задержка.
Цитата vahe-91:
есть goto
Вообще не использую безусловные переходы в чистом ввиде, лишь только для выхода
из глубоких логических конструкций и циклов! посему советую использовать логические конструкции
(обертки переходов на уровне компилятора) работает быстрее, ведь код сразу компилится,
а при goto установщик прыгает в процессе установки!т.е установщик еще не знает, что ему подсунут
Деинсталлятор то компилится на "горячую руку"...поэтому такая задержка.
Цитата vahe-91:
есть goto
[архив].: NSIS - все вопросы :.
Вообще не использую безусловные переходы в чистом ввиде, лишь только для выхода
из глубоких логических конструкций и циклов! посему советую использовать логические конструкции
(обертки переходов на уровне компилятора) работает быстрее, ведь код сразу компилится,
а при goto установщик прыгает в процессе установки!т.е установщик еще не знает, что ему подсунут
