原贴链接:http://www.suntw.com/vb6/vb-xia-zhai-wang-ye-wen-jian-he-tu-pian.html

一、使用 API 函数 URLDownloadToFile,下载网页文件(也可以是图片等其他文件)到硬盘

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Dim nUrl As String, F As String, S As Long

nUrl = "http://www.baidu.com/img/baidu_logo.gif": F = App.Path & "\My-1.bmp" '下载百度图片

S = URLDownloadToFile(0, nUrl, F, 0, 0)     '下载文件,0 表示成功

nUrl = "http://www.baidu.com": F = App.Path & "\Baidu.html" '下载百度首页的网页

S = URLDownloadToFile(0, nUrl, F, 0, 0)     '下载文件,0 表示成功

二、使用 API 函数 OleLoadPicturePath,下载图片文件到变量,注意要勾选引用:OLE Automation

Private Declare Function OleLoadPicturePath Lib "oleaut32.dll" (ByVal szURLorPath As Long, ByVal punkCaller As Long, ByVal dwReserved As Long, ByVal clrReserved As OLE_COLOR, ByRef riid As TGUID, ByRef ppvRet As IPicture) As Long

Private Type TGUID

Data1 As Long: Data2 As Integer: Data3 As Integer: Data4(0 To 7) As Byte

End Type

Public Function LoadNetPicture(ByVal ImgSrc As String) As Picture

Dim riid As TGUID

riid.Data1 = &H7BF80980: riid.Data2 = &HBF32: riid.Data3 = &H101A

riid.Data4(0) = &H8B: riid.Data4(1) = &HBB: riid.Data4(2) = &H0

riid.Data4(3) = &HAA: riid.Data4(4) = &H0:   riid.Data4(5) = &H30

riid.Data4(6) = &HC:   riid.Data4(7) = &HAB

OleLoadPicturePath StrPtr(ImgSrc), 0&, 0&, 0&, riid, LoadNetPicture

End Function

'使用方法:

Dim ImgSrc As String, nPicture As Picture

ImgSrc = "http://www.baidu.com/img/baidu_logo.gif"

Set nPicture = LoadNetPicture(ImgSrc)          '将图片下载到变量

SavePicture nPicture, App.Path & "\MyImg.bmp"  '保存到硬盘

Picture1.Picture = nPicture

'如果要将图片装载到控件,可以直接这样:

Picture1.Picture = LoadNetPicture(ImgSrc)

三、使用 Microsoft.XMLHTTP 对象,下载网页文件(也可以是图片等其他文件)到硬盘

Private Sub DownNetFile(ByVal nUrl As String, ByVal nFile As String)

Dim XmlHttp, B() As Byte

Set XmlHttp = CreateObject("Microsoft.XMLHTTP")

XmlHttp.Open "GET", nUrl, False

XmlHttp.Send

If XmlHttp.ReadyState = 4 Then

B() = XmlHttp.ResponseBody

Open nFile For Binary As #1

Put #1, , B()

Close #1

End If

Set XmlHttp = Nothing

End Sub

'使用方法:

DownNetFile "http://www.baidu.com/img/baidu_logo.gif", App.Path & "\My-1.bmp" '下载百度图片

DownNetFile "http://www.baidu.com", App.Path & "\Baidu.html" '下载百度首页的网页

四、使用 WebBrowser 的 Document 对象,保存网页的所有图片

'先用 WebBrowser1 显示一个网页,如:WebBrowser1.Navigate "http://www.baidu.com"

'待网页加载完毕后,再执行以下语句:

Dim nPath As String, K As Long, E, nRange

nPath = App.Path & "\Tu\"

WebBrowser1.Silent = True '关闭交互   禁止脚本错误

For Each E In WebBrowser1.Document.All

If E.tagName = "IMG" Then

Set nRange = WebBrowser1.Document.body.createControlRange()

nRange.Add E

nRange.execCommand "Copy" '复制到剪贴板

K = K + 1

SavePicture Clipboard.GetData, nPath & K & ".bmp" '保存到硬盘

End If

Next

五、用API调用系统的另存为下载对话框

Private Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long

'使用方法:

Dim nUrl As String

nUrl = StrConv("http://www.baidu.com", vbUnicode)

Call DoFileDownload(nUrl)

六、用 WebBrowser1 的 ExecWB 方法调用网页另存为对话框:

WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT

以上方法各有优缺点。

Microsoft.XMLHTTP 对于大文件有利,支持断点续传,但需调用 getResponseHeader 进行数据检查。

对于谷歌地图图片,图片链接形如 http://mt1.google.cn/vt/lyrs=s@63&gl=cn&x=51694&s=&y=26884&z=16&s=Galile,仅第四种方法有效。

VB下载网页文件或图片的几种简易方法相关推荐

  1. VB中使用PNG格式图片的一种新方法

    由于VB中的Image控件和Picture控件都不能直接加载PNG格式图片,给我们使用或浏览PNG格式的图片带来了困难.现行的解决方法主要是以下两种: (1)利用GDI显示PNG图片: (2)将PNG ...

  2. 如何下载网页中的图片

    http://qzher.com/?p=218 如何下载网页中的图片 发表日期 2016年4月25日 by qzher https://tuchong.com/1181287/12974705/ 怎么 ...

  3. go语言并发下载电影和视频,根据m3u8索引url下载视频.下载网页中的图片,可以从当前页向下搜索层数.

    一,根据URL的m3u8索引,下载视频文件. 二,下载网页中的图片. 为了家里小朋友,要下载一个视频,放在电视上看. 所以利用一点时间,写了这个简单下载程序.如果视频有加密,会对其解密. 最近下点图片 ...

  4. 百度网盘虚假下载(文件已修改或删除)解决方法

    百度网盘虚假下载(文件已修改或删除)解决方法 一.前言 二.解决思路 三.锁定的原因 四.解决方法 百度网盘虚假下载(文件已修改或删除)解决方法过程记录 不想看过程,只想看解决方法的朋友可以直接跳到- ...

  5. common-io-2.0的新功能之文件监控FileAlteration(文件监听的两种实现方法《很全的监听文件例子》)...

    common-io-2.0的新功能之文件监控FileAlteration(文件监听的两种实现方法<很全的监听文件例子>) 转载于:https://www.cnblogs.com/rocky ...

  6. 计算机不能再U盘新建文件夹,U盘无法建立新的文件夹?!三种小方法教你解决...

    原标题:U盘无法建立新的文件夹?!三种小方法教你解决 U盘是现代人常用的移动存储设备之一,特点是小巧易携带,容量大,因此深得用户喜欢.但是这小小的U盘一旦出现故障,就让人有点难以招架了,U盘不比电脑, ...

  7. python批量下载网页文件-Python批量下载网页图片详细教程

    目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件夹,每个文件夹包含n个链接所对应的文件夹. 步骤1:获得网页的所有链接,访问所有链接,获得链接里的图片地址. 步骤2:根据图片 ...

  8. 下载网页中的图片到本地

    简单的一个下载如下 : string url = "http://avatar.csdn.net/A/2/6/2_yefengzhixia.jpg";string filepath ...

  9. python批量下载网页文件-python使用selenium实现批量文件下载

    背景 实现需求:批量下载联想某型号的全部驱动程序. 一般在做网络爬虫的时候,都是保存网页信息为主,或者下载单个文件.当涉及到多文件批量下载的时候,由于下载所需时间不定,下载的文件名不定,所以有一定的困 ...

最新文章

  1. OpenResty中遇到Can't locate Time/HiRes.pm in @INC问题的解决方法
  2. 读写位宽不同的FIFO,数据输入输出顺序是怎么样的?BRAM又如何呢?
  3. 如何取得Win7文件的管理员权限?
  4. oracle 补丁打不上_oracle 打补丁常见问题
  5. electron ant-design-vue 不能用_基于 Electron 桌面消息管理客户端iGot
  6. 玩转oracle 11g(14):命令学习2
  7. 阿里P8架构师谈:大数据架构设计(文章合集)
  8. m3u8解析_浅谈m3u8格式视频文件采集
  9. centos最小化安装后部署中文输入法
  10. TP-Link C2和C20i产品出现命令注入、DoS等多个漏洞 绿盟科技发布安全威胁通告
  11. nodeJS+bootstarp+mongodb整一个TODO小例子
  12. 在线SEO外链工具源代码
  13. jenkins 安装maven 插件
  14. 实验06 分析IP报文结构实验报告
  15. jmeter录制postman脚本
  16. 让你的 commit 更有价值(规范)
  17. C/C++ FFmepeg Qt音视频开发录屏摄像机
  18. 您需要知道Rails中的erb以及如何掌握它
  19. 使用LSV进行通视分析教程
  20. python 拷贝文件创建目录失败_解决python os.mkdir创建目录失败的问题

热门文章

  1. 推荐25个免费下载精美网站模板的网站
  2. ATmega128型号标识说明
  3. LQ0052 冰雹数【枚举+角谷猜想】
  4. Java国际化——ResourceBundle基本使用
  5. RoseHA9.0 for WindowsServer2008R2 配合sqlserver安装配置
  6. android 通过service 执行AlarmManager 自动更换壁纸
  7. HG6543C1(3) --- 配置frp
  8. 2022年 前端web 面试题(笔试真题)(5)
  9. “status“: 400, “error“: “Bad Request“,
  10. yolo3+Mobilenetv1