NSIS打包常见问题记录

NDIS nui111 2702浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

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)!可加作者微信号1:xmtxtt(5000人已满),微信号2:codedq(5000人已满),微信号3:xttblog(超2800)。备注:“xttblog”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » NSIS打包常见问题记录