NSIS 进度条精确显示 (学习六)

#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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值