我正在使用WebBrowser控件,并希望将网页上的特定图像复制到剪贴板。我知道我可以使用WebBrowser.Document.ExecCommand方法来复制当前选定的页面区域,但无法找出如何指导选择来覆盖页面的特定HtmlElement或区域。WebBrowser将图像复制到剪贴板
任何帮助非常感谢!
我正在使用WebBrowser控件,并希望将网页上的特定图像复制到剪贴板。我知道我可以使用WebBrowser.Document.ExecCommand方法来复制当前选定的页面区域,但无法找出如何指导选择来覆盖页面的特定HtmlElement或区域。WebBrowser将图像复制到剪贴板
任何帮助非常感谢!
我没有写这个,但发现它不久前,并认为它会帮助你。
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);
}
谢谢!仅供将来参考给其他人使用,但您需要将Microsoft.mshtml的引用添加到您的项目中,并将“使用mshtml”添加到您的类文件中。 – JoeR 2010-09-30 19:06:05
@JoeR,感谢您提供的信息,这是非常古老的,我没有在一段时间内使用过这些代码,但是我在回忆完您的问题后回想起它。 – Justin 2010-10-05 18:20:46
真棒,老兄! – carck3r 2017-02-14 10:38:33