IHTMLDocument2无处不在

时间:2011-08-28 03:39:34

标签: c# ihtmldocument2

在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更新才能正常工作。

那是哪个更新?或者这个代码的任何其他替代方案,我不必从互联网上重新下载图像?

1 个答案:

答案 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部署项目(或手动将其复制到正在运行的应用程序目录),请在项目中包含此文件。