VB 使用WebBrowser下载图片错误,谁有更好的方法?
发布网友
发布时间:2022-05-31 03:50
我来回答
共1个回答
热心网友
时间:2023-10-08 23:15
不要用DownloadComplete事件,这个并不能保证页面已经完全加载完毕,而且在页面显示的过程中,DownloadComplete事件会多次触发,因为DownloadComplete的意思是页面中包含的文件已下载完毕,这也就意味着,如果页面中包含多个图片,那么每个图片下载完毕,DownloadComplete事件就会触发一次,而且不单是图片,其他文件如css、js等也会触发DownloadComplete事件!
正确的应该是用DocumentComplete事件,这个表示的是整个文档已下载完毕。另外,如果页面中包含框架,那么每个框架加载完毕也会触发DocumentComplete事件,所以应该排除这种情况:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If pDisp Is WebBrowser1.Object Then '这个就是判断事件是否由页面本身触发
fullPath1 = Text2
TT = Mid$(fullPath1, InStrRev(fullPath1, "/") + 1)
Dim K As Long, E, nRange
For Each E In WebBrowser1.Document.All
If E.tagName = "IMG" Then
Set nRange = WebBrowser1.Document.body.createControlRange()
nRange.Add E
nRange.execCommand "Copy" '复制到剪贴板
SavePicture Clipboard.GetData, "C:\ABC\" & TT '保存到硬盘
End If
Next
Text1.text=Text1.text+1
Text2 = List1.List(Text1.text)
WebBrowser1.Navigate Text2
End If
End Sub