#1、界面的搭建
;创建简要说明
Pop $0
${NSD_CreateLabel} 40 243 100 20 "开始安装..."
Pop $9
;进度条的创建
${NSD_CreateProgressBar} 24 265 460 20 ""
SkinProgress::Set $PB_ProgressBar "$PLUGINSDIR\loading2.bmp" "$PLUGINSDIR\loading1.bmp"
Pop $8
${NSD_CreateTimer} OnDialogTimer 100
#2、事件
Function Extractfunc
;Call DiskFrameWorkSpaceCheck ;检查磁盘的空间 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SetOutPath $INSTDIR
/*
该命令设置了由 File 命令使用的覆盖标记来决定目标文件已存在时是否覆盖。如果覆盖标记为 on,则目标文件被覆盖 (这个是默认值)。
如果覆盖标记为 off,则已存在的文件不会被覆盖。如果覆盖标记为 try,文件仅当可以被覆盖时 (就是说假如文件不能写入,它会自动略过而不需要用户决定) 才会覆盖目标文件。
如果覆盖标记为 ifnewer,则仅当已存在的文件比新文件旧时才会覆盖目标文件。如果覆盖标记为 ifdiff,则仅当已存在的文件比新文件旧或新时才会覆盖目标文件。
注意在 ifnewer 或 ifdiff 模式下,目标文件的日期都会被设为新文件的日期,而不管 SetDateSave 是怎么设置的。
*/
SetOverwrite ifnewer
;这个文件是应该安装的文件
File "Main.7z"
GetFunctionAddress $R9 Callback
Nsis7z::ExtractWithCallback "Main.7z" $R9 ;必须使用这一句
/*
WriteUninstaller "$INSTDIR\uninst.exe" ;生成卸载exe,自动调用section Uninstall
WriteRegStr HKLM "$PRODUCT_INSTALL_KEY" "InstallDir" "$INSTDIR"
WriteRegStr HKLM "$PRODUCT_UNINST_KEY" "Version" "${PRODUCT_VERSION}"
;WriteRegStr HKLM "$PRODUCT_INSTALL_KEY" "Version" "$PRODUCT_VERSION_NAME"
WriteRegStr HKLM "$PRODUCT_UNINST_KEY" "DisplayName" "$(^Name)"
WriteRegStr HKLM "$PRODUCT_UNINST_KEY" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr HKLM "$PRODUCT_UNINST_KEY" "DisplayIcon" "$INSTDIR\$PRODUCT_NAMEEXE"
WriteRegStr HKLM "$PRODUCT_UNINST_KEY" "DisplayVersion" "$PRODUCT_VERSION_NAME"
Delete "$OUTDIR\$PRODUCT_OUTFILE_MAIN7z"
*/
WriteUninstaller "$INSTDIR\uninst.exe" ;生成卸载exe,自动调用section Uninstall
WriteRegStr HKLM "${PRODUCT_INSTALL_KEY}" "Version" "${PRODUCT_VERSION}" ; 根键 子键 项 值
#跳到下一个界面
StrCpy $R9 1 ;Goto the next page
Call RelGotoPage
FunctionEnd