首页 > 解决方案 > 无法在 NSIS 卸载程序中隐藏后退按钮

问题描述

我在 NSIS 中创建了一个卸载程序。
它有 3 个页面(1 个自定义页面(确认)、宏MUI_UNPAGE_INSTFILES和另一个自定义页面(完成))。

我的问题是我无法隐藏“INSTFILES”页面中的“返回”按钮。我尝试了各种方法来隐藏它,但它只是处于禁用状态。

这是我用来隐藏后退按钮的代码:

GetDlgItem $1 $HWNDPARENT 3
ShowWindow $1 ${SW_HIDE}

当与 ID 1 和 2 一起使用时,上面的代码适用于 Next 和 Cancel 按钮。

我在各个地方都试过上面的代码

代码:

!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.InstShow
UninstPage custom un.UninstConfirm_Show
!define MUI_PAGE_CUSTOMFUNCTION_PRE un.InstShow
!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.InstShow
!insertmacro MUI_UNPAGE_INSTFILES
UninstPage custom un.UninstFinish_Show

un.InstShow具有隐藏按钮的逻辑。

任何帮助,将不胜感激。我花了将近 4-5 个小时在这上面没有运气。
这就是屏​​幕现在的样子(请注意,我在图像中隐藏了 Next 和 Cancel 按钮,以说明隐藏这些按钮对我来说很好用):

在此处输入图像描述

标签: nsis

解决方案


GetDlgItem $1 $HWNDPARENT 3
ShowWindow $1 ${SW_HIDE}

此代码完全正确并且工作正常(经过测试)。

我认为还有一些其他代码会再次显示该按钮。

例如在X页面的LEAVE功能中隐藏按钮的情况下,下一个页面可能会再次显示该按钮。这经常发生在常规 UI 中。

解决方案是检查您的所有自定义页面以及标准页面,以了解有关此按钮的任何操作。


推荐阅读