NSISasynchronous文件下载和自定义进度条

它是否存在NSIS插件或内置functionasynchronous下载文件和更新自定义进度条(使用nsDialogs创build)与下载进度?

您可以使用INetBgDl插件在后台下载文件并设计您自己的用户界面:

!include nsDialogs.nsh !include LogicLib.nsh Var hInfo Var hPBar Function myTimer InetBgDL::GetStats ${If} $2 = 0 ${NSD_KillTimer} myTimer ${NSD_SetText} $hInfo "Completed. (Status=$0)" SendMessage $hPBar ${PBM_SETRANGE32} 0 100 SendMessage $hPBar ${PBM_SETPOS} 100 0 Return ${EndIf} IntOp $2 $2 + $1 StrCmp $4 "" 0 +2 StrCpy $4 "?" ${NSD_SetText} $hInfo "Status=$0$\nCompleted $1 of $2 files$\nDownloaded $3 of $4 bytes" SendMessage $hPBar ${PBM_SETRANGE32} 0 $4 SendMessage $hPBar ${PBM_SETPOS} $3 0 FunctionEnd Function myPage nsDialogs::Create 1018 Pop $0 ${NSD_CreateLabel} 0 0 100% 50% "Starting download..." Pop $hInfo ${NSD_CreateProgressBar} 0 55% 100% 10u "" Pop $hPBar ${NSD_CreateTimer} myTimer 1000 InetBgDL::Get /RESET "https://download.mozilla.org/?product=firefox-41.0.2-SSL&os=win&lang=en-US" "$PluginsDir\ff.exe" /END nsDialogs::show ${NSD_KillTimer} myTimer FunctionEnd Page Custom myPage Page InstFiles