我正在使用WebBrowser控件,并希望将网页上的特定图片复制到剪贴板。我知道可以使用WebBrowser.Document.ExecCommand方法来复制页面的当前选择区域,但无法确定如何指定选择特定的HtmlElement或页面区域。非常感谢您的任何帮助!
我没有写这篇文章,但是我在一段时间前找到它并认为它会对你有所帮助。
http://www.codeproject.com/Messages/3206780/Re-Image-in-WebBrowser.aspx
IHTMLDocument2 doc = (IHTMLDocument2) webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange) ((HTMLBody) doc.body).createControlRange();
foreach (IHTMLImgElement img in doc.images)
{
imgRange.add((IHTMLControlElement) img);
imgRange.execCommand("Copy", false, null);
using (Bitmap bmp = (Bitmap) Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
{
bmp.Save(@"C:\"+img.nameProp);
}
}
我知道这个问题很老了,但如果仍然有人在寻找解决方案。 如果你只想复制特定的图片,可以使用以下修改后的代码。
string image_name = "temp.bmp";
IHTMLDocument2 document = (IHTMLDocument2)webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)document.body).createControlRange();
imgRange.add(document.all.item(HTML_IMAGE_ID));
imgRange.execCommand("Copy");
using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
{
bmp.Save(image_name);
}