本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
1.关于修改安装包的欢迎页上的最上面的caption
XPStyle on
Caption " 客户端"
Name "客户端"
2.怎样设置安装进度条不显示文件的详细信息
在工具开始处添加
ShowInstDetails nevershow
ShowUninstDetails nevershow
在section中开始处添加 SetDetailsPrint none,结束处添加 SetDetailsPrint textonly
3.messageBox的处理
在静默的时候MessageBox也会弹出对话框,可以在弹出对话框的地方添加
IfSilent +2 0
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
Abort
4.修改 安装界面的文字显示
MiscButtonText 可以替换掉安装页面的button显示,[上一步][下一步][取消][关闭],如果留空参数,将使用默认值代替。
例如 MiscButtonText "测试1" "测试2" "测试3" "完成(&G)"
将MiscButtonText的修改项放到
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
前。
5.隐藏安装界面的button按钮:使用MyInstFiles替换掉MUI_PAGE_INSTFILES
; 安装过程页面
;!insertmacro MUI_PAGE_INSTFILES
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyInstFiles
Function MyInstFiles
GetDlgItem $0 $HWNDPARENT 1 ;下一步
ShowWindow $0 ${SW_HIDE}
GetDlgItem $0 $HWNDPARENT 2 ;取消
ShowWindow $0 ${SW_HIDE}
GetDlgItem $1 $HWNDPARENT 3 ;上一步
ShowWindow $1 ${SW_HIDE}
FunctionEnd
6.去掉安装界面和卸载界面的Nullsoft…字:
在安装页面!insertmacro MUI_PAGE_INSTFILES前面添加BrandingText " "
7.修改安装页面的上一步,下一步,取消按钮和卸载页面的关闭按钮的文字
安装页面:
GetDlgItem $R0 $HWNDPARENT 1
SendMessage $R0 ${WM_SETTEXT} 0 `STR:下一步1`
GetDlgItem $R0 $HWNDPARENT 2
SendMessage $R0 ${WM_SETTEXT} 0 `STR:取消1`
GetDlgItem $R0 $HWNDPARENT 3
SendMessage $R0 ${WM_SETTEXT} 0 `STR:上一步1`
卸载页面
Section Uninstall
GetDlgItem $R0 $HWNDPARENT 1
SendMessage $R0 ${WM_SETTEXT} 0 `STR:完成`
SetDetailsPrint none
…
SetDetailsPrint textonly
SetAutoClose true
SectionEnd
8.使用NSIS给自己的程序在开始菜单中添加卸载菜单
因为是想将程序安装到所有用户,所有脚本中添加
RequestExecutionLevel admin
在安装section中
Section CREATESTARTMENU
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\\${PRODUCT_NAME}\\$(UNINSTALL_STARTMENUVALUE).lnk" "$INSTDIR\\uninst.exe"
SectionEnd
在卸载section中
Section Uninstall
SetShellVarContext all
Delete "$SMPROGRAMS\\${PRODUCT_NAME}\\$(UNINSTALL_STARTMENUVALUE).lnk"
RMDir "$SMPROGRAMS\\${PRODUCT_NAME}"
SetAutoClose false
SectionEnd
SetShellVarContext all一定要添加上,否则会出现卸载之后开始菜单中仍然显示有我们的程序的Bug
版权声明:本文为博主原创文章,未经博主允许不得转载。
最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » NSIS打包常见问题记录