IHTMLDocument2无处不在

SMU*_*hah 0 c# ihtmldocument2

在winform应用程序中,我有WebBrowser控制权和a PictureBox.我正在加载一个Image(从webbrowser控件之后DocumentComplete)到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);

     }
Run Code Online (Sandbox Code Playgroud)

图像显示在我的电脑上的picturebox1中,但不是我朋友的.在另一个Windows XP上安装VS2008后它运行良好.所以我想IHTMLDocument2需要Windows更新才能正常工作.

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

Eri*_*ips 7

听起来你需要在这里部署额外的文件(dll?).

最好的选择(以及大多数人所做的)是使用类似System.Net.WebClient的内容来下载源代码,并再次使用WebClient来下载图像.

如果您决定使用HTML界面IHTMLDocument2,则包含此界面的文件位于C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll (如果您运行的是32位Windows,则不包含x86).如果您正在使用VS部署项目(或手动将其复制到正在运行的应用程序目录),请在项目中包含此文件.