IHTMLDocument2 no funciona en todas partes

En una aplicación winform tengo WebBrowser control y un PictureBox. Estoy cargando una imagen (desde el control del navegador web después de DocumentComplete) a pictureBox1 con el siguiente código

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);

     }

La imagen se muestra en picturebox1 en mi PC, pero no en la de mi amigo. En otro Windows XP funcionó bien después de instalar VS2008. Así que supongo que IHTMLDocument2 necesita una actualización de Windows para funcionar correctamente.

¿Qué actualización es esa? ¿O alguna otra alternativa a este código en la que no tengo que volver a descargar la imagen de Internet?

preguntado el 28 de agosto de 11 a las 03:08

1 Respuestas

Parece que necesita implementar archivos adicionales (dlls?) Disponibles Aquí.

La mejor opción (y lo que hace la mayoría de la gente) es usar algo como System.Net.WebClient para descargar la fuente y vuelva a utilizar WebClient para descargar la imagen.

Si está decidido a utilizar una interfaz para HTML IHTMLDocument2 el archivo que contiene esta interfaz está en C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll (sin el x86 si está ejecutando Windows de 32 bits). Incluya este archivo en su proyecto si está utilizando un proyecto de implementación de VS (o cópielo manualmente en el directorio de la aplicación en ejecución).

Respondido el 02 de Septiembre de 11 a las 01:09

No puedo encontrar ningún dll en el enlace. - SMUsamaShah

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.