无法在NSIS卸载程序中隐藏“后退”按钮

无法在NSIS卸载程序中隐藏“后退”按钮,nsis,Nsis,我在NSIS中创建了一个卸载程序 它有3个页面(1个自定义页面(确认)、宏MUI_UNPAGE_INSTFILES和另一个自定义页面(完成)) 我的问题是我无法在“INSTFILES”页面中隐藏“Back”按钮。 我尝试过各种方法来隐藏它,但它只是停留在禁用状态 这是我用来隐藏“后退”按钮的代码: GetDlgItem $1 $HWNDPARENT 3 ShowWindow $1 ${SW_HIDE} 当与ID 1和ID 2一起使用时,上述代码对于“下一步”和“取消”按钮可以正常工作 我已经在

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

我的问题是我无法在“INSTFILES”页面中隐藏“Back”按钮。 我尝试过各种方法来隐藏它,但它只是停留在禁用状态

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

GetDlgItem $1 $HWNDPARENT 3
ShowWindow $1 ${SW_HIDE}
当与ID 1和ID 2一起使用时,上述代码对于“下一步”和“取消”按钮可以正常工作

我已经在不同的地方尝试过上面的代码

  • 联合国
  • myGuiInit(自定义)
  • 确认页面的页面离开回调
  • 页面预先回调INSTFILES页面
  • 页面显示INSTFILES的回调页面
代码:

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

任何帮助都将不胜感激。我花了将近4-5个小时在这上面,但运气不佳。
这就是屏幕现在的样子(请注意,我在图像中隐藏了“下一步”和“取消”按钮,以说明隐藏这些按钮对我来说很好):

此代码完全正确,工作正常(已测试)

我想还有其他代码再次显示该按钮。

例如,在场景中,当您在第X页的“离开”功能中隐藏按钮时,下一页可能会再次显示该按钮。这在常规UI中经常发生


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

NSIS中的内部页面标志PF_BACK_SHOW针对除第一页以外的所有页面设置,您必须绕过它

如果InstFiles页面是最后一页,或者如果您不想在页面上单击back按钮,则可以移动该按钮:

Section -un.Main
GetDlgItem $1 $hwndParent 3
System::Call USER32::MoveWindow(pr1,i-9,i-9,i1,i1,i1)
SectionEnd

如果您只想在InstFiles页面上隐藏它,而不想在以后的页面上隐藏它,那么您必须在计时器回调中调用
ShowWindow

您的UI实际上是这样的吗?你是不是错过了一场比赛!插入宏MUI_语言?
GetDlgItem $1 $HWNDPARENT 3
ShowWindow $1 ${SW_HIDE}
Section -un.Main
GetDlgItem $1 $hwndParent 3
System::Call USER32::MoveWindow(pr1,i-9,i-9,i1,i1,i1)
SectionEnd