效果不如用WinHttp库下载
; 可以下载,但是下载大文件保存成文件时比较慢
MsgBox % urlDownloadToFile("https://gitee.com/dbgba/key/raw/master/ahk66/FindText/378-2.png")
urlDownloadToFile(url, fileDest="", method=0){
SetBatchLines % ("-1", Bch:=A_BatchLines)
if(!fileDest) {
splitPath, url, fileDest
fileDest := A_ScriptDir "\" fileDest
}
hObject:=ComObjCreate("WinHttp.WinHttpRequest.5.1")
hObject.Open("GET",url)
hObject.Send()
uBytes:=hObject.ResponseBody,cLen:=uBytes.maxIndex()
fileHandle:=fileOpen(fileDest,"w")
; 先放入内存变量中,再写一次
if(!method) {
varSetCapacity(f, cLen, 0)
Loop % cLen+1
numPut(uBytes[A_Index-1], f, A_Index-1, "UChar")
err:=fileHandle.RawWrite(f, cLen+1)
} else { ; 跳过内存变量,多次写入文件
Loop % cLen+1
err+=fileHandle.WriteUChar(uBytes[A_Index-1])
fileHandle.Close()
}
SetBatchLines %Bch%
return err
}
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)