[Ayuda] Proyecto con WebBrowser

Iniciado por Edu, 25 Febrero 2011, 18:58 PM

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

Edu

Bueno estoy haciendo un programa q una vez lo hice en vb6 pero no era para nada estable, lo q hace es conectarse a la web donde hay un juego de esos q jugas por web simplemente, ya hice todo lo q queria casi.. solo q no es tan estable como queria. La pregunta es esta: Cual evento del WebBrowser usan para cuando se termino de cargar una pagina? esq yo uso WebBrowser_DocumentComplete algo asi:

Código (csharp) [Seleccionar]

private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            switch (EstadoActual)
            {

                case Estado.Entrando:
                 
                    web.Document.GetElementById("en_pseudo").SetAttribute("value", usuario);
                    web.Document.GetElementById("en_password").SetAttribute("value", password);
                    web.Document.GetElementById("B1").InvokeMember("Click");
                    EstadoActual = Estado.Principal;
                    WaitSeconds(10);
                    break;

                case Estado.Saliendo:
                    this.Close();
                    break;


                case Estado.Principal:
                   
                    web.Navigate("http://www.vidajurasica.com/index.php?p=etat/index");
                    EstadoActual = Estado.State;
                    WaitSeconds(10);
                    break;

                case Estado.State:
                   
                    State();
                    web.Navigate("http://www.vidajurasica.com/index.php?p=house/index");
                    EstadoActual = Estado.Choza;
                    WaitSeconds(10);
                    break;

                case Estado.Choza:
        ..........
         ........


Entonces cada vez q va cargando una pagina cambio el estado para q la proxima vez q entre a ese evento utilize otro case.
Pero si miran veran q uso una funcion para esperar tiempo determinado, eso es feo y poco profesional, esq no anda bien parece el evento documentcomplete ya q entra a veces o no se :S

Asique si alguien ha trabajado con algo asi y sabe de otra forma, otro evento, me gustaria q me ayudase..

Desde ya gracias! q muchas veces me han ayudado!

Edu

Perdonen por el doble post pero nadie puede ayudarme en esto? si alguien ya trabajo con cosas asi solo le costara 4 palabras contestarme :/
Me quedo lindo el programa pero me faltaria eso para q sea mas seguro y mas rapido.

SRVAM

el evento document_Completed salta cada vez que se carga un popup, o un iframe...

Para controlar eso, lo que puedes hacer es lo siguiente:

if(e.Url.ToString().Contains("la pagina que quieres controlar que se ha cargado")
{
                //aqui tu codigo para controlar los estados
}


prueba a hacerlo asi porque a mi no me suena que haya otro evento que controle cuando se ha cargado la pagina completamente...

espero que te sirva de ayuda.

Saludos!
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

Edu

Por fin alguien contesta xD gracias!

Tengo q hacer if (e.Url.ToString() == "http://www.vidajurasica.com/index.php?p=etat/index") { }

Asi lo hago?

SRVAM

si, hazlo asi, asi aunque se carguen anuncios o popups, tu codigo solo se ejecutara si se ejecuta la direccion que tu quieras en concreto xD

puedes hacerlo como tu has puesto, haciendo la comparacion, o asi:

if (e.Url.ToString().Contains( "http://www.vidajurasica.com/index.php?p=etat/index")) { }

te tiene que funcionar igual ;)

ya me cuentas cuando lo pruebes  ;D
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

Edu

Esq el Contains esta de mas xD pero a ver, talvez es porq no se como funcionan las webs pero yo pensaba q entraban a la direccion en este caso: http://www.vidajurasica.com/index.php?p=etat/index y luego empezaban a cargar los popups q hay dentro, pero bueno voy a probar y luego te aviso como me fue ;)

SRVAM

yo es que hice un capturador de enlaces de visualizacion y descargas de peliculas. lo que hago es coger todos los enlaces de megavideo y megaupload xD

y nada mas cargar una pagina, si tiene publicidad, me la carga lo primero, y por ultimo cuando ya se ha cargado todo, me da la pagina que yo quiero como cargada al 100% xDD
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

Edu

Bueno como dije entones es porq no se nada de como funcionan las webs xD ahora entendi eso de las ventanas emergentes, pero en esta web www.vidajurasica.com no sale ninguna ventana emerjente, pero lo q si veo es q en el Google Chrome en la barra de abajo de todo dice:


Esperando www.vidajurasica.com..
Esperando www.elbutano.com...
Esperando www.jogogo.com..


Cosas asi y cambia a veces las distintas paginas q logro ver ya q eso lo hace en milisegundos xD pero sera eso? esq al evento documentcomplete me entra como 3 veces, talvez es por eso y entonces tendre q usar lo q dices si.

Pero dime si esta bien lo q pense xD

SRVAM

Cita de: XXX-ZERO-XXX en  9 Marzo 2011, 20:02 PM
Bueno como dije entones es porq no se nada de como funcionan las webs xD ahora entendi eso de las ventanas emergentes, pero en esta web www.vidajurasica.com no sale ninguna ventana emerjente, pero lo q si veo es q en el Google Chrome en la barra de abajo de todo dice:


[color=red]Esperando www.vidajurasica.com..
Esperando www.elbutano.com...
Esperando www.jogogo.com..[/color]


Cosas asi y cambia a veces las distintas paginas q logro ver ya q eso lo hace en milisegundos xD pero sera eso? esq al evento documentcomplete me entra como 3 veces, talvez es por eso y entonces tendre q usar lo q dices si.

Pero dime si esta bien lo q pense xD

claro, te entra 3 veces porque tiene que cargar las 3 paginas que dices jajaja
Lo has entendido bien jeje por eso hay que hacer el if, para que solo se ejecute el codigo cuando entre en la pagina que a ti te interesa y no haga nada cuando cargue las otras xD
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

Edu

Ahi va, bueno si funciona habras echo q mi programa funcione 600% mas rapido jaja xD gracias!