Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


yyv,
Можно сделать примерно так (пример на этапе инсталляции):
1. Команды не в коем случае не перемещать - здесь очень важна последовательность действий!
2. Константы иницилизируем, только в функции OnInit, потом будет поздно и значения констант определяем только после отработки макроса PRODUCTNAME и следовательно, объявляем значения констант после макроса - банальная последовательность действий
3. Это извращение, проще хранить значения в переменных. причем в данном случае в объявленных переменных, может быть покажу, когда именно, в какой момент нужно делать - здесь вся загвоздка.
Код: Выделить весь код
!include "MUI2.nsh"
!include "Logiclib.nsh"

OutFile file.exe

!macro PRODUCTNAME
  ReadINIStr $R1 "$EXEDIR\settings.ini" "PRODUCT_NAME" "Text"
  ${IfNot} $R1 == ""
       StrCpy $R1 "$R1"
  ${Else}
       ClearErrors
       StrCpy $R1 "это NSIS ${NSIS_VERSION}" ;если $R1 = "пустому значению", то назначаем по умолчанию значение
  ${EndIf}
!macroend

!define MUI_WELCOMEPAGE_TITLE "$R1"
!define PRODUCT_NAME "$R1"
Caption "$R1"

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

ShowInstDetails show

Function .OnInit
 !insertmacro PRODUCTNAME
FunctionEnd

Section ""
  MessageBox MB_ICONINFORMATION|MB_OK ${PRODUCT_NAME}$\n$\r$R1
SectionEnd

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 25-04-2011 в 18:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:46, 25-04-2011 | #1113