效果不如用WinHttp库下载

WinHttp库 By 空

 

; 可以下载,但是下载大文件保存成文件时比较慢
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
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。