Saber cuando termino de cargar la pagina - Control Webbrowser.

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

0 Miembros y 1 Visitante están viendo este tema.

fary

Si quieres el código fuente de la página lo mas correcto sería que la descargaras con API  y no haciendo chapuzas con webbrowser  :-\

Un byte a la izquierda.

79137913

HOLA!!!

Drinky tiene mucha razon...

Autoria (Seba123Neo)

En un modulo:
Código (vb) [Seleccionar]
Option Explicit
Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

Public Const IF_FROM_CACHE = &H1000000
Public Const IF_MAKE_PERSISTENT = &H2000000
Public Const IF_NO_CACHE_WRITE = &H4000000
     
Private Const BUFFER_LEN = 256


Public Function GetUrlSource(sURL As String) As String
    Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
    Dim hInternet As Long, hSession As Long, lReturn As Long

    'get the handle of the current internet connection
    hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
    'get the handle of the url
    If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
    'if we have the handle, then start reading the web page
    If hInternet Then
        'get the first chunk & buffer it.
        iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
        sData = sBuffer
        'if there's more data then keep reading it into the buffer
        Do While lReturn <> 0
            iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
            sData = sData + Mid(sBuffer, 1, lReturn)
        Loop
    End If

    'close the URL
    iResult = InternetCloseHandle(hInternet)

    GetUrlSource = sData
End Function



en un form con un textbox multiline:
Código (vb) [Seleccionar]
Text1.Text = GetUrlSource("http://www.google.com")

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

lo pense, lo juro.
Pero necesitaba que se loguearan en un principio :P
y no funcionaba haciendo User:pass@dominio

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

Mis programas

LuckyLucciano

Hola a todos, buenos días! Perdón que revivo este thread pero estoy en la misma situación de Elemental Code y estaba tratando de implementar la función que posteo Drinky de autoria de Seba123Neo pero no puedo hacerla funcionar en VB.NET 2008... me tira un error en la declaración de las variables por el aterisco:

Citar* BUFFER_LEN, iResult As Integer, sData As String

Por favor, alguien me puede dar una manito?

Muchisimas gracias de antemano!!!

Danyfirex

#14
Cita de: LuckyLucciano en 12 Julio 2013, 15:21 PM
Hola a todos, buenos días! Perdón que revivo este thread pero estoy en la misma situación de Elemental Code y estaba tratando de implementar la función que posteo Drinky de autoria de Seba123Neo pero no puedo hacerla funcionar en VB.NET 2008... me tira un error en la declaración de las variables por el aterisco:

Por favor, alguien me puede dar una manito?

Muchisimas gracias de antemano!!!

creo que seria así:

Código (vbnet) [Seleccionar]
s = New String(" ", 256)
'o
Dim strBuff(256) As Char



saludos

LuckyLucciano

Gracias Danyfirex por responder! Lo modifique como me indicaste y no me tira errores con las variables, pero al ejecutar el código me tira error y no logro que funcione  :-[

Danyfirex

Cita de: LuckyLucciano en 12 Julio 2013, 16:42 PM
Gracias Danyfirex por responder! Lo modifique como me indicaste y no me tira errores con las variables, pero al ejecutar el código me tira error y no logro que funcione  :-[

de net se lo básico, de igual forma proba esto.

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



sino se soluciona crea un tema en la sección de .NET.


saludos

jabm2000

Estoy en la misma situación que LuckyLucciano, probando el codigo que indica Drinky, ¿podeis retomar el tema? Gracias.
He probado todos los codigos que indicais en este tema, y no me funcionan como quisiera, ya que el evento DocumentCompleted, se me lanza, como cinco veces, imagino que seran por los frames que tiene la pagina y lo que me interesa es que la pagina este realmente cargada completa.
Tambien tengo otro problema con el webbrowser... pero eso lo pondre en otro tema.
Nuevamente gracias.