我正在使用NSIS的INETC插件下载多个文件(50+)
所有的事情似乎都很好,除了一点小烦恼。
当您到达要下载文件的部分时,您无法中止安装程序。
安装程序右上角的“X”(窗口关闭)是灰色的。INETC插件本身有一个“取消”按钮,但这只会取消当前文件的下载,从而导致安装包恢复到下一个文件。对于队列中的+50个文件,这是一个烦人的问题,唯一解决它的方法是结束进程任务
为了调用INETC::get,我创建了一个名为DownloadFile的函数,它执行一些验证,并以文件名作为参数
然后,我以以下方式调用它
Strcpy $BatchFile "filename.fileextension"
Call DownloadFile实际上,我想知道如何使用INETC下载多个文件,同时又不阻止用户完全中止安装。
编辑: DownloadFile代码
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发布于 2014-08-18 17:28:13
调用inetc::进入循环,每个文件一次。如果从堆栈中弹出的返回值不是"OK“,则中止循环。
https://stackoverflow.com/questions/25368695
复制相似问题