14

我想在我使用 NSIS 和 MUI2 创建的安装程序的欢迎屏幕中添加一个显示完整版本字符串的标签。

我已经搜索了有关如何执行此操作的信息,但只找到了对使用 MUI_INSTALLOPTIONS* 的引用,我发现 MUI2 不推荐使用 ws。另一个使用具有相同选项的 INSTALLOPTIONS* 引用了较新的版本,但我无法使其正常工作。我最后还找到了使用 nsDialogs 的参考——这就是我在自定义页面中使用的。但是 - 我没有找到关于如何更改 MUI2.nsh 附带的任何现有页面的参考或示例。

我找到了一种更改 MUI_HEADERTEXT 的方法,但这不会影响欢迎屏幕。我希望有一种方法也可以更改欢迎文本。也许使用 MUI_WELCOMETITLE 和 MUI_WELCOMEBODY 或类似的。

4

2 回答 2

13

有 MUI_WELCOMEPAGE_TEXT 但它仅在您想更改所有文本而不只是附加某些内容时才有用。

在页面的显示功能期间,您可以更改任何控件的文本:

outfile test.exe
requestexecutionlevel user

!include MUI2.nsh

#!define MUI_WELCOMEPAGE_TEXT "New text goes here"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyWelcomeShowCallback
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"


Function MyWelcomeShowCallback
SendMessage $mui.WelcomePage.Text ${WM_SETTEXT} 0 "STR:$(MUI_TEXT_WELCOME_INFO_TEXT)$\n$\nVersion: foo.bar"
FunctionEnd

Section
SectionEnd

..或添加一个新控件:

outfile test.exe
requestexecutionlevel user

!include MUI2.nsh

!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyWelcomeShowCallback
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"


Function MyWelcomeShowCallback
${NSD_CreateLabel} 120u 150u 50% 12u "Version: foo.bar"
Pop $0
SetCtlColors $0 "" "${MUI_BGCOLOR}"
FunctionEnd

Section
SectionEnd
于 2011-03-15T23:21:49.820 回答
0

我也遇到了 NSIS 的问题。在我的例子中,它在插入宏 MUI_PAGE_WELCOME 之前定义了 MUI_WELCOMEPAGE_TITLE。

它应该看起来像:

!define MUI_WELCOMEPAGE_TITLE  "CUSTOM TITLE HERE"
!insertmacro MUI_PAGE_WELCOME
于 2021-06-03T12:49:29.750 回答