[архив].: NSIS - все вопросы :.

Ответить
 • Просмотры: 59
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

yyv, Я все прекрасно понял, что вы хотите! поэтому предложил 1044 в своем примере

Вы не добьетесь желаемого результата стандартными средствами NSIS, для этого есть плагины

или написать свой плагин, коль разбираетесь в языках программирования, хотя не факт,

каким то образом можно сделать плагином system -

входящий в комплект стандартной поставки NSIS - вызовами WinAPI.

Я имею ввиду, 1044 растянуть до кнопок, а на поверх кнопок, наложить фоновую картинку

под цвет основного фона, примерно как это сделано в ExperienceUI

и за одно можно наложить текстуру кнопок под цвет фона - есть такой плагин на офф.сайте
Аватара пользователя
yyv

Re: [архив].: NSIS - все вопросы :.

Сообщение yyv »

kotkovets, дело в том, что мне нужно не просто растянуть контрлол на весь диалог, а мне нужна возможность рисовать необходимые мне элементы в нижней части.

например добавить чекбокс между кнопками

или возле кнопки добавить лейбл и картинку

и я уже завис совсем и ни чего не понимаю...





вот к примеру

я создаю страницу




читать дальше »




Код:

Код: Выделить всё

; 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 - все вопросы :.

Сообщение MKN »

Цитата kotkovets:



nsExec::Exec "file.cmd"
[архив].: NSIS - все вопросы :.




спасибо, это то что нужно Изображение но зачем нужен

Код:

?
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

Цитата vahe-91:



спасибо, это то что нужно но зачем нужен
[архив].: NSIS - все вопросы :.




В стек возвращается код возврата запускаемой проги, и следует, что мы можем с

уверенностью сказать, как отработала прога.



Код:

Код: Выделить всё

Pop $0
MessageBox MB_OK "$0"

Сделай успешное выполнение команды, а затем заведомо не успешное. Сравни циферки...

У меня так конструктор на руборде организован на кодах возврата - и я узнаю сразу в чем проблема
Аватара пользователя
MKN

Re: [архив].: NSIS - все вопросы :.

Сообщение MKN »

kotkovets,

Вроде разобрался с этим моментом (полтыщи строк, путаюсь очень...). Спасибо. Теперь никак не получается закрыть кастомную страницу (по сути закрыть скрипт, выйти из него) после :



Код:

Код: Выделить всё

MessageBox MB_OK "Файл успешно создан!" IDOK

Т.е. по окончании работы.

Почему то вообще не действует :



Код:

Код: Выделить всё

Section
SetAutoClose true
SectionEnd
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

Цитата vahe-91:



из-за чего может создание деинсталятора задержатся примерно на пол минуты ?
[архив].: NSIS - все вопросы :.




Трудно судить почему, из-за вопроса только, может какие процессы до создания идут, скрипт в студию, а там видно будет...
Аватара пользователя
sawe

Re: [архив].: NSIS - все вопросы :.

Сообщение sawe »

Цитата kotkovets:



Трудно судить почему, из-за вопроса только, может какие процессы до создания идут, скрипт в студию, а там видно будет...
[архив].: NSIS - все вопросы :.




Скрипт не могу показать. В скрипте деинсталятора примерно две тысячи строк, для удаления ключей из реестра, это может быть причиной ?
Аватара пользователя
kotkovets

Re: [архив].: NSIS - все вопросы :.

Сообщение kotkovets »

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 - все вопросы :.

Сообщение yyv »

Цитата kotkovets:



удаление плагом аль стандартными командами? циклы есть?
[архив].: NSIS - все вопросы :.




плагинов нет, есть goto



Код:

Код: Выделить всё

setregview 32
deleteregkey hklm "ключь"
setregview 64
deleteregkey hklm "ключь"

примерно тисяча строк под setregview 32 и одно и тоже под setregview 64. В секции деинсталятора только это и несколько rmdir и unregdll.
Аватара пользователя
sawe

Re: [архив].: NSIS - все вопросы :.

Сообщение sawe »

Ясно, если стока строк - то только оптимизация кода немного может.

Деинсталлятор то компилится на "горячую руку"...поэтому такая задержка.


Цитата vahe-91:



есть goto
[архив].: NSIS - все вопросы :.




Вообще не использую безусловные переходы в чистом ввиде, лишь только для выхода

из глубоких логических конструкций и циклов! посему советую использовать логические конструкции

(обертки переходов на уровне компилятора) работает быстрее, ведь код сразу компилится,

а при goto
установщик прыгает в процессе установки!т.е установщик еще не знает, что ему подсунут Изображение
Ответить

Вернуться в «Автоматическая установка приложений»