我需要将图像从网络浏览器控件复制到我的剪贴板,因为每次重新加载时图像都会更改,并且我尝试获取“src”属性并将我的picturebox.imagelocation更改为该属性,但picturebox上的图像不同于webbrowser 控件上的图片。
我正在尝试自动化 Web 服务,它需要填写验证码,并且每次加载页面时都会更改,这就是为什么我需要获取当前显示的验证码。
伪代码:
通过标签“img”为每个元素。获取“src”属性。启动源的实例HttpWebRequest
或使用WebClient.DownloadFile
源。
您将需要做一些技巧来确定源相对于 url 的位置。例如,src 可以是“/img/pony.jpg”,在这种情况下,您需要从WebBrowser
控件中获取 url 的根以使其成为“ http://mylittle.com/img/pony.jpg ”。
假设您使用的是 Windows 窗体(如果您使用 WPF,则需要更改获取文档的方式)并且用户没有在 IE 区域设置中阻止剪贴板访问
Dim doc As IHTMLDocument2 = DirectCast(webBrowser1.Document.DomDocument, IHTMLDocument2)
Dim body As IHTMLElement2 = DirectCast(doc.body, IHTMLElement2)
Dim imgRange As IHTMLControlRange = DirectCast(body.createControlRange(), IHTMLControlRange)
Dim image As IHTMLControlElement = DirectCast(DirectCast(doc, IHTMLDocument3).getElementById(sImgID), IHTMLControlElement)
imgRange.add(image)
imgRange.execCommand("Copy", False, Nothing)