IHTMLDocument2 не работает везде

В приложении Winform у меня есть WebBrowser контроль и PictureBox, Я загружаю изображение (из контроля веб-браузера после DocumentComplete) к картинке Box1 с кодом ниже

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 ответ

Решение

Похоже, вам нужно развернуть дополнительные файлы (DLL?) Доступны здесь.

Лучший вариант (и то, что делает большинство людей) - использовать что-то вроде System.Net.WebClient для загрузки исходного кода и снова использовать WebClient для загрузки изображения.

Если вы решили использовать интерфейс для HTML IHTMLDocument2 файл, содержащий этот интерфейс, находится в C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll (без x86, если вы используете 32-битную Windows). Включите этот файл в свой проект, если вы используете проект VS Deployment (или вручную скопируйте его в каталог запущенного приложения).

Другие вопросы по тегам