当前位置 : 首页> 常见问题 > NSIS打包源文件有哪些常见问题

NSIS打包源文件有哪些常见问题

时间:2019-04-09 14:07:27   已访问:766次
热门专业

NSIS打包源文件有哪些常见问题?有关NSIS相关问题,这里将一一阐明。

NSIS打包源文件有哪些常见问题_www.itpxw.cn

列举NSIS打包源文件常见问题

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


推荐内容