Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: rubeng en 10 Agosto 2007, 02:31 am



Título: Determinar si una imagen se cargo en un webbrowser
Publicado por: rubeng en 10 Agosto 2007, 02:31 am
weno eso como se puede determinar si una imagen se cargo en un webbrowser lo ideal seria un timer con un condicional pero no conozco una funcion que haga eso alguien tiene alguna idea?
salu2


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: rubeng en 11 Agosto 2007, 01:07 am
puede alguien responder si se puede o no?
 no puede haber tanta gente y q ninguno sepa =S


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: LeandroA en 11 Agosto 2007, 07:05 am
hola tenes que utilizar javascript para determinarlo. para ello tenes que ingresar a las propiedades del Document del webrowser

Código:
Dim LaImagen As String
Private Sub Form_Load()
Me.Show
LaImagen = "D:\Mdis documentos\Image2.png"
'WebBrowser1.Navigate "about:<img src='" & LaImagen & "'  onerror=" & Chr(34) & "alert('La imagen no se cargo')" & Chr(34) & " /> "
WebBrowser1.Navigate "about:<img src='" & LaImagen & "' id=1 onerror=" & chr34 & "this.id='Error'" & chr34 & " /> "
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If WebBrowser1.Document.getelementbyid(1) Is Nothing Then
MsgBox "La Imange no se cargo"
End If
End Sub

Espero que sea eso a lo que te referias, sino explicate mejor


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: rubeng en 11 Agosto 2007, 20:11 pm
gracias por la ayuda pero lo que yo navego no es la pagina en la que solo esta la foto es una pagina con texto y otras fotos quiero saber si esa imagen se ha cargado. garicas salu2


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: Freeze. en 11 Agosto 2007, 20:36 pm
El lo que quiere hacer es:

Seleccionar una imagen de el...
Navegar en cualquier web...
Y saber si se ha cargado cierta imagen..

Yo supongo que seria:

Sacando el codigo fuente, Usando Instr y Mid para ver el nombre de la imagen y comparar...

Es eso?


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: LeandroA en 12 Agosto 2007, 02:47 am
hola si ahora se entiende mejor, siempre es mejor especificar lo mejor posible todo, cuando se formula una pregunta.

bien me fije y la forma de saver si se cargo es mirando el tamaño de la imagen (FileSize)

lo que decia freeze, no funcionaria porque el codigo de fuente siempre va a ser igual por mas que la imagen no se cargue.

te paso un ejemplo con una pagina que por lo que veo no carga dos imagenes la 3 y la 7 en tal caso remplaza las imagenes por otra, y tambien te puse un ejemplo de como obtener otros datos

Código:
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.wikilearning.com/mi_primera_aplicacion_cliente-wkccp-7936-5.htm"

End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

With WebBrowser1.Document.images
    For i = 0 To .length - 1
        Debug.Print "-------- Imagen " & i & "-----------"
        Debug.Print "Ancho: " & .Item(i).Width 'Ancho
        Debug.Print "Alto: " & .Item(i).Height 'Alto
        Debug.Print "Tamaño: " & .Item(i).FileSize 'Tamaño
        Debug.Print "Texto alternativo: " & .Item(i).alt 'Texto alternativo
        Debug.Print "Direccion: " & .Item(i).src 'Direccion de la imagen
        Debug.Print "-------------------------------------" & vbCrLf
   
        If .Item(i).FileSize = -1 Then
            MsgBox "La Imagen " & i & " no se cargo y sera remplzada por otra"
            .Item(i).src = "C:\WINDOWS\A pescar.bmp"
        End If
    Next
End With

End Sub

Saludos


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: rubeng en 12 Agosto 2007, 03:13 am
creo que eso servira..
especificamente lo que keria hace es suponete.. entras al foro de el hacker tenes la imagen de buscar arriba y que cuando se cargue por ejemplo la clikee pero tendria que determinar si fue cargada.. no es eso lo que quiero hacer..
lo q quiero hacer en un sitio despues de un contador aparece una imagen y el programa cuando ve q la imagen cargo va a otro y asi
salu2


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: rubeng en 13 Agosto 2007, 01:26 am
usando esta funcion
Código:
Private Sub Timer1_Timer()
With WebBrowser1.Document.images
    For i = 0 To .length - 1
        If .Item(i).FileSize = -1 Then
            If .Item(i).src = "http://imagen.gif" Then
                MsgBox "la imagen nose cargo"
            End If
        Else
            If .Item(i).src = "http://imagen.gif" Then
                MsgBox "la imagen sise cargo"
            End If
        End If
    Next
End With
End Sub

Private Sub Form_Load()
WebBrowser1.Navigate "http://paginadondetaimagen.gif.htm"
End Sub
me salta el siguiente error
Citar
Error '91' en tiempo de ejecución:
           La variable de tipo Object o la variable de bloque With no
           está establecida.
y me señala en amarillo esta parte
Código:
With WebBrowser1.Document.images
que puede ser? que estoy haciendo mal?


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: LeandroA en 13 Agosto 2007, 04:07 am
Hola no puedes acceder a esa propiedad hasta que el documento no se descargue por completo, de hay tal error. tenes que asegurarte de que el documento se haya descargado por eso te digo que lo pongas en el evento del WebBrowser1_DocumentComplete


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: rubeng en 14 Agosto 2007, 01:41 am
lo puse asi y me sigue saltando el mismo error =S
Código:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
With WebBrowser1.Document.images
    For i = 0 To .length - 1
        If .Item(i).FileSize = -1 Then
            If .Item(i).src = "http://imagen.gif" Then
                MsgBox "la imagen nose cargo"
            End If
        Else
            If .Item(i).src = "http://imagen.giff" Then
                MsgBox "la imagen sise cargo"
            End If
        End If
    Next
End With
End Sub

Error '91' en tiempo de ejecución:
           La variable de tipo Object o la variable de bloque With no
           está establecida.
nose q puede ser


Título: Re: Determinar si una imagen se cargo en un webbrowser
Publicado por: abkanis en 23 Abril 2014, 14:56 pm
no seria mas facil, hacer que en javascript detectes si la imagen ha cargado en un div , luego manipularlo desde vb  con el webbrowser?