自定义现有的 NSIS MUI2 页面

发布于 2024-11-17 17:44:58 字数 310 浏览 4 评论 0 原文

我已成功向 nsis 安装程序的完成页面添加了一个复选框,使用 MUI 在完成页面中定义了 MUI_PAGE_CUSTOMFUNCTION_PREMUI_PAGE_CUSTOMFUNCTION_SHOW 的函数。

但是,如果我包含 MUI2 而不是 MUI,则不会显示该复选框。我认为在这方面 MUI2MUI 有所不同。我找不到这方面的文档,如果有人知道,我可以知道吗???

谢谢

I have added a checkbox successfully to nsis installer's finish page defining functions for MUI_PAGE_CUSTOMFUNCTION_PRE and MUI_PAGE_CUSTOMFUNCTION_SHOW in finish page using MUI.

But if I include MUI2 instead of MUI, the check box is not displayed. I suppose there is something different in MUI2 than MUI with respect to this. I could not find documentation on that an if anyone knows that, can I please know???

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往昔成烟 2024-11-24 17:44:58

MUI1 使用 InstallOptions 作为欢迎和完成页面,MUI2 使用 nsDialogs。

这记录在 MUI2 自述文件中:

欢迎页面和完成页面没有
更长的实施时间使用
安装选项。相反,新的
使用nsDialogs插件。 nsDialogs
允许您创建自定义页面或
直接自定义现有页面
脚本。

编辑:使用显示回调中的 nsDialogs 命令自定义页面:

var Checkbox

Function MyFinishShow
${NSD_CreateCheckbox} 120u 110u 100% 10u "&Something"
Pop $Checkbox
SetCtlColors $Checkbox "" "ffffff"
FunctionEnd

Function MyFinishLeave
${NSD_GetState} $Checkbox $0
${If} $0 <> 0
    MessageBox mb_ok "Custom checkbox was checked..."
${EndIf}
FunctionEnd

!define MUI_FINISHPAGE_RUN "calc.exe" ;See note after the code...
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyFinishShow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyFinishLeave
!insertmacro MUI_PAGE_FINISH

或者,如果您不使用现有的完成页面复选框,则可以将它们用于 自定义东西而不使用显示回调...

MUI1 uses InstallOptions for the Welcome and Finish pages and MUI2 uses nsDialogs.

This is documented in the MUI2 readme:

The welcome and finish page are no
longer implemented using
InstallOptions. Instead, the new
nsDialogs plug-in is used. nsDialogs
allows you to create custom pages or
customize existing pages directly from
the script.

Edit: Customize the page by using the nsDialogs commands in the show callback:

var Checkbox

Function MyFinishShow
${NSD_CreateCheckbox} 120u 110u 100% 10u "&Something"
Pop $Checkbox
SetCtlColors $Checkbox "" "ffffff"
FunctionEnd

Function MyFinishLeave
${NSD_GetState} $Checkbox $0
${If} $0 <> 0
    MessageBox mb_ok "Custom checkbox was checked..."
${EndIf}
FunctionEnd

!define MUI_FINISHPAGE_RUN "calc.exe" ;See note after the code...
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyFinishShow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyFinishLeave
!insertmacro MUI_PAGE_FINISH

Or if you are not using the existing finish page checkboxes, you can use those for custom stuff without using the show callback...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文