nsis - 无法在 NSIS 卸载程序中隐藏后退按钮
问题描述
我在 NSIS 中创建了一个卸载程序。
它有 3 个页面(1 个自定义页面(确认)、宏MUI_UNPAGE_INSTFILES
和另一个自定义页面(完成))。
我的问题是我无法隐藏“INSTFILES”页面中的“返回”按钮。我尝试了各种方法来隐藏它,但它只是处于禁用状态。
这是我用来隐藏后退按钮的代码:
GetDlgItem $1 $HWNDPARENT 3
ShowWindow $1 ${SW_HIDE}
当与 ID 1 和 2 一起使用时,上面的代码适用于 Next 和 Cancel 按钮。
我在各个地方都试过上面的代码
- un.OnInit
- myGuiInit(自定义)
- 确认页面的页面LEAVE回调
- INSTFILES页面的Page PRE回调
- INSTFILES 页面的页面 SHOW 回调
代码:
!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 按钮,以说明隐藏这些按钮对我来说很好用):
解决方案
GetDlgItem $1 $HWNDPARENT 3
ShowWindow $1 ${SW_HIDE}
此代码完全正确并且工作正常(经过测试)。
我认为还有一些其他代码会再次显示该按钮。
例如在X页面的LEAVE功能中隐藏按钮的情况下,下一个页面可能会再次显示该按钮。这经常发生在常规 UI 中。
解决方案是检查您的所有自定义页面以及标准页面,以了解有关此按钮的任何操作。
推荐阅读
- php - GroupBy 和计数 - laravel
- php - 如何将 PHP 中的 trader_macd 函数与来自 bittrex API 的值一起使用?
- php - 无法更新推进中的主键字段值
- mysql - 有没有办法只导入数据库表模式
- 3dsmax - 如何平滑边框
- c# - 如何使用 WPF 中的拖放功能在运行时将列表框动态添加到 Wrap 面板
- javascript - 使用 C# 从 DatePicker 获取周 ID
- warnings - 如何处理警告:PHP警告无法在centos服务器上加载php_openssl.dll No such file in unknown on line 0
- android - 扫描蜂窝网络
- regex - 用bash从字符串中提取整数