我知道一个图像可以从网页浏览器控件中打开的网站上下载,但实际上通过获取图像URL并下载该图像。有一个网站不允许直接链接,所以图片无法下载,所以我能想到的唯一方法就是从网页浏览器控件的缓存中复制图片。从VB.NET中存在的网页浏览器控件的缓存复制图像
0
A
回答
0
您可以使用在线c#转换为vb.net转换器,如telerik或developerfusion即可在vb.net中获取代码。
- 添加参考Microsoft.mshtml到项目
- 下一个代码添加到web浏览器DocumentCompleted事件处理
示例代码:
Private Sub webBrowser1_DocumentCompleted(sender As Object, _
e As WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted
Dim doc As IHTMLDocument2 = _
DirectCast(webBrowser1.Document.DomDocument, IHTMLDocument2)
Dim imgRange As IHTMLControlRange = _
DirectCast(DirectCast(doc.body, _
HTMLBody).createControlRange(), IHTMLControlRange)
For Each img As IHTMLImgElement In doc.images
imgRange.add(DirectCast(img, IHTMLControlElement))
imgRange.execCommand("Copy", False, Nothing)
Using bmp As Bitmap = DirectCast(_
Clipboard.GetDataObject().GetData(DataFormats.Bitmap), Bitmap)
bmp.Save("C:\" + img.nameProp)
End Using
Next
End Sub
+0
为什么说我HTMLDocument2未定义?我已经添加了对mshtml的引用已经..和IHTMLControlRange和IHTMLImgElement相同的错误 –
+0
确定问题已解决,但文件没有保存,甚至没有在剪贴板上 –
+0
doc.images集合将只枚举主要文档图像(顶部框架),也许你的图像是在帧集合 – volody
相关问题
- 1. 控制浏览器缓存
- 2. 强制浏览器缓存图像
- 3. 利用浏览器缓存 - CSS /图像的过期/缓存控制
- 4. 在浏览器上缓存图像
- 5. 检查HTMLElement是否存在于网页浏览器控件(vb.net)中的Document中
- 6. 缓存控制响应头不强制浏览器缓存
- 7. 了解网页浏览器中的图片缓存
- 8. PHP缓存控制浏览器只缓存页面的一部分
- 9. 从JSP或Javascript中的浏览器缓存中清除图像
- 10. 将图像保存在网页浏览器控件中,无需从互联网上重新下载图像
- 11. 文件没有从浏览器缓存加载过期和缓存控制
- 12. 浏览器缓存动态图像吗?
- 13. 浏览器图像缓存规则
- 14. 使浏览器缓存图像
- 15. 如何强制浏览器刷新网页的缓存版本
- 16. 将图像从网页浏览器复制到剪贴板
- 17. 在浏览器缓存中存储图像 - 加载图像的最佳方式
- 18. 强制浏览器重新读取缓存的图像
- 19. 强制浏览器缓存图片在PHP网站
- 20. 在浏览器会话中强制浏览器缓存
- 21. 浏览器插件显示网页是从浏览器缓存还是网页服务器加载
- 22. 缓存文件浏览器中的
- 23. Chrome缓存像疯狂的浏览器
- 24. 控制应缓存的网页文件缓存
- 25. 想要使用网络浏览器控制保存网页
- 26. 从网络浏览器控件打印图像/页面
- 27. 网页浏览器中的大图像
- 28. ,如果图像是在浏览器缓存中的JavaScript检查
- 29. 在浏览器中的Asp.net MVC图像缓存
- 30. Yii缓存为网站控制器/页
http://stackoverflow.com/问题/ 7274329/load-image-from-webbrowser-without-redownloading-or-copying – volody
对此似乎不错,但它似乎在C#中,你能帮忙吗 –