首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多文件取消

多文件取消
EN

Stack Overflow用户
提问于 2014-08-18 17:19:02
回答 1查看 722关注 0票数 0

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

所有的事情似乎都很好,除了一点小烦恼。

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

安装程序右上角的“X”(窗口关闭)是灰色的。INETC插件本身有一个“取消”按钮,但这只会取消当前文件的下载,从而导致安装包恢复到下一个文件。对于队列中的+50个文件,这是一个烦人的问题,唯一解决它的方法是结束进程任务

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

然后,我以以下方式调用它

代码语言:javascript
复制
Strcpy $BatchFile "filename.fileextension"
Call DownloadFile

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

编辑: DownloadFile代码

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-18 17:28:13

调用inetc::进入循环,每个文件一次。如果从堆栈中弹出的返回值不是"OK“,则中止循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25368695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档