ayuda a crear aplicacion Auto-Login

Iniciado por izaak7, 26 Octubre 2009, 14:58 PM

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

izaak7

hola.
me ha dado la inquietud de hacer una aplicacion que al hacer click sobre ella se logee en una pagina determida y al final me abra la pagina.

se programar pero no me enseñaron mucho..solo aplicaciones para windows, nada de web.

encontre este codigo :
CitarPrivate Sub Command1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command1.Click
    With WebBrowser1
        .Visible = True
        .Navigate("http://cl.ikariam.com/index.php?")
        'Do While .Busy = True : DoEvents() : Loop
        .Document.loginform.login.Value = "tudireccion"
        .Document.loginform.pwd.Value = "tupassword"
        .Document.loginform.submit.Click()
    End With

yo le modifique ya la pagina y el formulario y los nombres de los textbox pero al poner el codigo en el visual me tira errores  :silbar:

me marca las lineas de document, busy y DoEventes.

agradeceria si alguien me puede aclarar.

gracias. :rolleyes:

seba123neo

vamos por parte, posteas en el foro de visual basic 6, pero con un codigo de .NET...que en realidad el codigo no es de .NET , es de visual basic 6, ¿me explico? o sea la pregunta crucial es ¿en que lenguaje estas programando?
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

izaak7

a mi me enseñaron en visual basic .net
pero como dije antes no se mucho sobre web ..solo hicimos cosas entre formularios, calculos dentro de un programa...consultas a base de datos ..y cosas asi.

este codigo creo que lo posteastes tu en otro lado.
no es mucho lo que entiendo...

pense que vb 6 Y .net eran algo parecidos..porque en vb . net sale igual eso de webbrowser

pd. andube buscando tu correo por ahi..he visto q sabes mucho y estas en muchos portales de encargado de este tema.

la pagina es cl.ikariam.com
creo q se envian los datos por POST y los campos del formulario son login y pwd

saludos..y desde ya gracias
:D

seba123neo

no creo que lo haya puesto asi para .NET, para .NET cambia, es algo asi, mira el link:

Como completar formularios web y enviarlos.

saludos.


La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

izaak7

#4
si.. acabo de mirar ese post.. he leido muchisimos post tuyos con temas parecidos y en muchos casos repetitivos..

tengo el vb 2008 igual que en ese caso.

pero al depurarlo me tira error:

Excepción del tipo 'System.NullReferenceException' en WindowsApplication1.exe

el codigo me queda asi:
CitarPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       With WebBrowser1
           .Visible = True
           .Navigate("http://cl.ikariam.com/index.php?")
           .Document.GetElementById("login").InnerText = "user"
           .Document.GetElementById("pwd").InnerText = "pass"
           .Document.GetElementById("submit").InvokeMember("click")

       End With

   End Sub

aqui pongo un poco las lineas que puedo ver dentro de la pagina donde quiero hacer el login:

Citar<script type="text/‭‬‭‬javascript">
       function changeAction(type) {    
          if (type != "register" && document.loginForm.universe.value == '') {
             alert('Kein Uni ausgewählt');
          } else {
             if(type == "login") {
                var url = "http://" + document.loginForm.universe.value + "/index.php?action=loginAvatar&function=login";
                 document.getElementById('loginForm').action = url;      
             } else if (type=="getpw") {
                var url = "http://" + document.loginForm.universe.value + "/game/reg/mail.php";
                document.loginForm.action = url;
                 document.loginForm.submit();
             } else if(type == "register") {
                var url = "http://" + document.registerForm.universe.value + "/index.php?action=newPlayer";
                document.registerForm.action = url;
             }



Citar<td><input id="login" name="name" type="text" class="login" /></td>
                   <td><input id="pwd"  name="password" type="password" class="pass" /></td>
                   <td><input type="submit" class="button" value="Conéctate" /></td>

nose si servira de algo..
desde ya gracias por tu tiempo  :)

seba123neo

tenes que esperar que la pagina termine de cargarse compelta para poder ingresar los valores, porque si no carga, no encuentra los controles, proba algo asi te tiene que andar:

Código (vbnet) [Seleccionar]
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With WebBrowser1
            .Visible = True
            .Navigate("http://cl.ikariam.com/index.php?")
        End With
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        With WebBrowser1
            .Document.GetElementById("login").InnerText = "user"
            .Document.GetElementById("pwd").InnerText = "pass"
            .Document.GetElementById("loginform").InvokeMember("submit")
        End With
    End Sub
End Class


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

izaak7

asi va el codigo:
:P
CitarPublic Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       With WebBrowser1
           .Visible = True
           WindowState = FormWindowState.Maximized
           .Navigate("http://cl.ikariam.com/index.php")
       
       End With

   End Sub

   Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
       With WebBrowser1
           .Document.GetElementById("login").InnerText = "user"
           .Document.GetElementById("pwd").InnerText = "pass"
           .Document.GetElementById("submit").InvokeMember("Click")
           
       End With
    End Sub
End Class

carga la pagina , luego pone los datos pero solo queda ahi.. no se cambia a la pagina donde tiene que redireccionarse..

otra cosa..esto todo ocurre dentro del programa vb .net y me hubiese gustado que lo hiciera en el navegador predeterminado, ya encontre una manera de abrir el navegador pero no funcionan los mismos codigos para llenar el form.

gracias de nuevo ;-)


MANULOMM

algunas paginas y mas las de juegos pueden detectar aun no se como que no es un click del usuario el que lo hace, ingresa a Ikariam normal (login con tus datos y haces click) y prueba ese code, no se cambiando de ciudad haber si asi te deja. debe ser algun GameGuard para cieras acciones, yo alguna vez lo intente con Ogame pero el login no se dejaba.

Con respecto a lo del Navegador, pues la mejor forma de hacerlo es con el WebBrowser en el Form pues puedes controlar el HTML y consultar el arbol de objetos, con un navegador externo no podrias hacer eso asi de sencillo.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia