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 (или вручную скопируйте его в каталог запущенного приложения).