在winform应用程序中,我有WebBrowser
控件和PictureBox
。我正在加载一个Image(从DocumentComplete
之后的webbrowser控件)到pictureBox1,代码如下
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);
pictureBox1.Bitmap = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
}
图片显示在我的电脑上的picturebox1中,但不是我朋友的。在另一个Windows XP上安装VS2008后它运行良好。所以我想IHTMLDocument2需要Windows更新才能正常工作。
那是哪个更新?或者这个代码的任何其他替代方案,我不必从互联网上重新下载图像?
答案 0 :(得分:7)
听起来你需要部署额外的文件(dll?)Here.
最佳选择(以及大多数人所做的)是使用类似System.Net.WebClient的内容来下载源代码,再次使用WebClient下载图像。
如果您决定使用HTML IHTMLDocument2
的接口,则包含此接口的文件位于C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll
中(如果您运行的是32位Windows,则不包含x86)。如果您正在使用VS部署项目(或手动将其复制到正在运行的应用程序目录),请在项目中包含此文件。