Saber cuando termino de cargar la pagina - Control Webbrowser.

Iniciado por Elemental Code, 13 Marzo 2012, 01:56 AM

0 Miembros y 2 Visitantes están viendo este tema.

Elemental Code

hola!
Estoy usando un control webbrowser para hacer lo siguiente

Cargar pagina
Obtener codigo fuente
Obtener lo que quiero de ese codigo


y que se repita
osea que vuelva a empezar.

Se hacer todo, pero necesito saber cuando termino de cargar la pagina para saber cuando empezar a trabajar el codigo fuente de la pagina.

Ahora el punto, el control webbrowser tiene eventos como "Download complete" "Document complete" y otras cosas asi.

El problema es que me tira entre 1 y tres eventos por pagina web. y no se porque :D

Hay una forma facil de hacer esto?

NOTA: tengo que usar webbrowser si o si, de otra forma no puedo hacer un paso previo a eso :P
Edito, puede ser un usercontrol de navegador tambien, me refiero a que necesito que el usuario complete unos datos desde un formulario web.

Gracias por su ayuda :D

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

MCKSys Argentina

Probaste ir mirando el valor de "ProgressChange"?

Por otro lado, creo que el evento correcto es este: http://msdn.microsoft.com/en-us/library/aa768329.aspx (Ojo que el control debe estar visible para que se triggeree)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Elemental Code

#2
CitarIn pages where multiple frames are loaded, this event fires for each frame where the DownloadBegin event has fired.

Tendria que probar.
ahora se porque me tiraba varios eventos un solo sitio web.

Voy a tener que probar a ver que eventos se activan y cuando :P

lo del Progresschange hace lo mismo que el anterior. ahora entiendo.
Si tiene un frame carga las cosas separadas y por eso lo muestra asi :P

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

79137913

HOLA!!!

Eventos

Código (visualfoxpro) [Seleccionar]
Private Sub WebBrowser1_DownloadBegin()
ct = ct+1
End Sub

Private Sub WebBrowser1_DownloadComplete()
ct = ct-1
if ct = 0 then finish
End Sub


GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Elemental Code

GRACIAS!!!

No lo habia pensado :D

Ya mismo lo implemento. :D

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

$Edu$

Lo que yo hice una vez cuando me pasaba esto, fue que en el DocumentComplete() verificar si la url que estaba navegando es la que yo queria que termine.

webycam

#6
 Yo tenia el mismo problema, el problema esta en que el webbrowser pasa por distintos estados antes de terminar la carga, la solución es esta.
Código (vbnet) [Seleccionar]
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
             Aqui pones el codigo que quieres que se ejecute cuando la pagina este cargada completamente
        End If
    End Sub

Espero que te sirva

Elemental Code


I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

R2100

#8
Si la página es tuya, puedes incluir algún texto al final del html y comprobar si existe en cada DownloadComplete(), o StatusTextChange()
Si no lo es, quizá te vale con buscar en en innerhtml el </body>  ó  </html>
Así te evitas los 'falsos positivos' de los iframes, aunque quizá te fallará con los frames.
Depende de la página que estés 'estudiando'




Elemental Code

era la pagina de un servidor de las netbooks EXO de mi escuela.

Ya lo solucione, como la pagina en cuestion no tenia frames me devolvio un solo evento download complete :D

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas