NSIS inetc多文件取消

时间:2014-08-18 17:19:02

标签: download nsis

我使用NSET的INETC插件下载多个文件(50 +)

除了此时的一点点烦恼外,一切似乎都运转良好

当您到达正在下载文件的部分时,您无法中止安装程序。

&#39; X&#39;在安装程序的右上角(窗口关闭)显示为灰色。 INETC插件本身有一个&#39;取消&#39;按钮,但这只取消了当前文件的下载,导致安装包恢复到下一个..在队列中有+50个文件,这是一个烦恼,解决它的唯一方法是结束任务过程< / p>

要调用INETC::get我创建了一个名为DownloadFile的函数,该函数执行一些验证并将文件名作为参数

然后我按照以下方式调用它

Strcpy $BatchFile "filename.fileextension"
Call DownloadFile

基本上,我想知道如何使用INETC下载多个文件,同时不会阻止用户完全中止安装

编辑:下载文件代码

Function DownloadFile

 IfFileExists "$EXEDIR\$Targetfolder\$BatchFile" +1
 md5dll::GetMD5File "$EXEDIR\$Targetfolder\$BatchFile"
 Pop $0
 Strcpy $MD5file $0

 push "$EXEDIR\$Targetfolder\$BatchFile"
 Push "\"
 Call GetAfterChar
 Pop $R0
 Strcpy $Filename $R0

 push $Filename
 call GetBaseName
 Pop $2
 Strcpy $NoEXTFile $2

 ${If} $NoEXTFILE != $MD5file
   SetDetailsView show
   Detailprint "File $Batchfile doesnt exit or MD5 is faulty. Re-downloading"
   inetc::get /RESUME "Do you want to retry?" "[url]/$BatchFile" "$EXEDIR\$Targetfolder\$BatchFile"
 ${Else}
   Detailprint "File $BatchFile exists, MD5 is good"
 ${EndIf}

 sleep 2000

FunctionEnd

1 个答案:

答案 0 :(得分:0)

调用inetc :: get循环,每个文件一次。如果从堆栈弹出的返回值不是&#34; OK&#34;然后中止循环。