1 回答
TA贡献1816条经验 获得超6个赞
您可以使用createControlRange创建一个controlRange非文本元素。然后找到图像标签,例如使用id,然后将图像标签添加到控制范围并调用它的execCommand方法执行Copy命令,最后从剪贴板中获取图像:
.NET 3.5
添加对MSHTML. 您可以Microsoft HTML Object Library在COM参考下找到它,然后添加using mshtml;. 然后:
IHTMLElement2 body = (IHTMLElement2)webBrowser1.Document.Body.DomElement;
IHTMLControlRange controlRange = (IHTMLControlRange)body.createControlRange();
IHTMLControlElement element = (IHTMLControlElement)webBrowser1.Document
.GetElementById("imgCaptcha").DomElement;
controlRange.add(element);
controlRange.execCommand("Copy", false, null);
pictureBox1.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
.NET >= 4.0
您不需要添加引用,您可以利用dynamic:
dynamic body = webBrowser1.Document.Body.DomElement;
dynamic controlRange = body.createControlRange();
dynamic element = webBrowser1.Document.GetElementById("imgCaptcha").DomElement;
controlRange.add(element);
controlRange.execCommand("Copy", false, null);
pictureBox1.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
笔记:
当文档完成时运行代码,例如在
DocumentCompleted
事件中。此外,您可能希望在代码中添加空检查。
我使用上面的代码通过 id从https://www.google.com获取谷歌徽标
hplogo
。我还通过浏览https://demos.captcha.com/demos/features/captcha-demo.aspx并通过
c_captchademo_samplecaptcha_CaptchaImage
作为验证码图像的 id查找验证码图像来测试上述代码。
- 1 回答
- 0 关注
- 165 浏览
添加回答
举报