WebBrowser将图像复制到剪贴板

时间:2010-09-30 18:36:48

标签: c# .net browser clipboard

我正在使用WebBrowser控件,并希望将网页上的特定图像复制到剪贴板。我知道我可以使用WebBrowser.Document.ExecCommand方法来复制页面当前选定的区域,但无法确定如何指示选择覆盖特定的HtmlElement或页面区域。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:9)

我没有写这篇文章但是刚才发现它并且认为它会帮助你。

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);
  }
}

答案 1 :(得分:1)

我知道它已经老了但是万一有人还在寻找它。 如果您只想复制特定图像,可以使用以下修改版本的代码

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);
}