【问题标题】:How can I modify the text in the MUI_WELCOME_PAGE when using MUI2 for NSIS?使用 MUI2 for NSIS 时如何修改 MUI_WELCOME_PAGE 中的文本?
【发布时间】:2011-07-16 04:39:35
【问题描述】:

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

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

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

【问题讨论】:

    标签: installation nsis nsis-mui


    【解决方案1】:

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

    应该是这样的:

    !define MUI_WELCOMEPAGE_TITLE  "CUSTOM TITLE HERE"
    !insertmacro MUI_PAGE_WELCOME
    

    【讨论】:

      【解决方案2】:

      有 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
      

      【讨论】:

      • 我使用了第二个建议,并没有尝试过第一个。工作就像一个魅力,谢谢:)
      • 这里建议的两种方法都对我有用(NSIS3、MUI2)
      • 发现SendMessage 需要将STR: 附加到字符串前面:nsis.sourceforge.net/Reference/SendMessage
      • hm,我终于在卸载程序中使用$mui.WelcomePage.Text失败了-我只成功使用$HWNDPARENT在菜单栏中设置对话框标题
      • 第二个解决方案对我来说很有吸引力,谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多