border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 31-03-2008, 17:07:04
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 41
zeroxdevil Valoración +2
Predeterminado AutoLogin

Haber estoy intentando hacer un programa para resetear routers nada mas me queda el detalle de no tener que meter la contraseña tu si no que lo haga automaticamente, el proceso seria ma o menos asi al pulsar sobre un boton se abrria una web en un webform y aparece la ventana tipica para introudicr el password del router y el user el router es un comtrend CT536+ y quiero que la contraseña y el password se pongan solos haber si alguien me ilumina un poco ya que no e encontrado informacion que me sirva por ahora.
Gracias
Responder Con Cita
  #2 (permalink)  
Antiguo 31-03-2008, 17:24:10
Avatar de seba123neo
Moderador
 
Registrado: nov 2007
Ubicación: Argentina
Posts: 367
seba123neo Valoración +2
Predeterminado Re: AutoLogin

Hola,ok te entiendo,queres ingresar a la pagina de administracion del router y poner la contraseña y usuario que te pide automaticamente,ahora yo te pregunto ,¿te aparece una ventana para ingresar los datos(usuario,pass)? o es como una pagina de internet con 2 textbox?,porque los 2 metodos serian diferentes...ya tengo la idea de como hacerlo,pero te pregunto eso antes de seguir...

saludos.
__________________
Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
Responder Con Cita
  #3 (permalink)  
Antiguo 31-03-2008, 20:58:34
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 41
zeroxdevil Valoración +2
Predeterminado Re: AutoLogin

Sale Una ventana para ingresar los datos, pero necesito las dos maneras si me puedes ayudar muchas gracias.
Te lo agradezco de veras.
Responder Con Cita
  #4 (permalink)  
Antiguo 31-03-2008, 23:09:10
Avatar de seba123neo
Moderador
 
Registrado: nov 2007
Ubicación: Argentina
Posts: 367
seba123neo Valoración +2
Predeterminado Re: AutoLogin

Hola,es una ventana entonces,mira te cuento,yo tengo un idea de como hacerlo para que sea realmente bueno el metodo,porque yo lo puedo hacer tranquilamente con una funcion que envie las teclas con sendkeys,pero no le tengo mucha confianza y lo quiero hacer sacando los nombres de la ventana(nombres de clase) y asi asignarles el texto directamente sin enviar pulsaciones ni nada...para hacer eso necesitas saber los nombres de los controles de la ventana y eso lo podes averiguar con la aplicacion que viene con visual basic llamada Spy++,mira te hago como un tutorial de como pienso hacerlo.supongamos que yo quiero escribir automaticamente en el Bloc de Notas de windows sabiendo el nombre de clase del control que te permite escribir adentro,aca te hago una captura de como saque el nombre de la ventana para escribir con el Spy++:

este es el nombre de clase de la ventana padre llamada "Notepad":



este es el nombre del control dentro de la ventana llamado "Edit":



para saber los datos de la ventana tenes que arrastrar el "iconito" sobre una ventana y te va diciendo las partes que la forman,en este caso fijate que esta seleccionado el area de escritura del bloc de notas y al lado en la ventana estan los datos...

el handle es el numero(Long) que le asigna windows a cada ventana ,es como si fuera el nuero que identifica esa ventana,sabiendo eso,podes hacer un monton de cosas,cerrarla,moverla,resizarla,cambiar valores,etc....

el Class es el nombre de clase del control,o sea cada control tiene su nombre...ese ese es que nos interesa ahora..

ahora fijate con este codigo como escribo en el bloc de notas..usando unas funciones api's...

Código:
Public Class Form1
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
    Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
    Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Private Const WM_SETTEXT = &HC

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Shell("notepad.exe", vbNormalNoFocus)
        Dim a As Long
        Dim b As Long
        a = FindWindow("Notepad", vbNullString)
        b = FindWindowEx(a, 0&, "Edit", vbNullString)
        SendMessageSTRING(b, WM_SETTEXT, 256, "Holaaaaaaaaaaaa")
    End Sub
End Class
vos hace lo mismo con tu ventana,pone un control webbrowser navega a la pagina del router y cuando te aparesca la ventana que te aparece y asignale a cada control su correspondiente valor,el pass y el usuario...

saludos.
__________________
Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
Responder Con Cita
  #5 (permalink)  
Antiguo 31-03-2008, 23:13:51
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 41
zeroxdevil Valoración +2
Smile Re: AutoLogin

OK tio Gracias voy a probarlo ahora mismo si funciona te lo digo ok.
Responder Con Cita
  #6 (permalink)  
Antiguo 01-04-2008, 00:33:44
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 41
zeroxdevil Valoración +2
Predeterminado Re: AutoLogin

Pues no lo consigo es como si feran una ventana dentro de otra y no consigo sacarlo, luego esta el combobox y toy muy perdido(Lo seguire intentado jejeje), haber si se te ocurre algo mientras me lo voy a currando con los manejadores y muxas gracias de todas maners te lo as currao.
Responder Con Cita
  #7 (permalink)  
Antiguo 01-04-2008, 00:43:02
Avatar de seba123neo
Moderador
 
Registrado: nov 2007
Ubicación: Argentina
Posts: 367
seba123neo Valoración +2
Predeterminado Re: AutoLogin

jeje no te deseperes,poneme una captura de la ventana que te sale ,a ver si es la que yo pienso...una que tiene un combobox y adentro tiene metido un textbox?? pone una captura y vemos...y de paso te digo como hacerle click automatico a un boton de una aplicacion externa ,para aceptar el ingreso de los datos...

saludos.
__________________
Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
Responder Con Cita
  #8 (permalink)  
Antiguo 01-04-2008, 01:35:16
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 41
zeroxdevil Valoración +2
Predeterminado Re: AutoLogin

Este es el cuadro
Imágenes Adjuntas
Tipo de Archivo: jpg esteses.JPG (24,4 KB, 8 visitas)
Responder Con Cita
  #9 (permalink)  
Antiguo 01-04-2008, 03:16:50
Avatar de seba123neo
Moderador
 
Registrado: nov 2007
Ubicación: Argentina
Posts: 367
seba123neo Valoración +2
Predeterminado Re: AutoLogin

si,era el que yo pensaba que era,en verdad hay mas controles de los que parecen haber....hay un marco o frame que esta oculto a la vista,pero con el Spy++ lo podes ver se llama syscredential¿¿ lo viste??,te explico algo,cuando queres acceder a un control de una ventana de windows como estoy haciendo yo aca,por ejemplo suponete que tenes un textbox comun ,pero este esta metido dentro de un marco,pues no podes acceder a este directamente,primero tenes que acceder al marco y despues al textbox,o sea primero tenes que acceder al contenedor padre y despues al hijo...

el textbox de el usuario es el mas complicado,pues esta metido,primero y principal dentro de la ventana entera que se llama #32770,despues esta el marco llamado syscredential,despues esta el combobox padre llamado
comboboxex32,despues el combobox llamado combobox y despues recien ahi accedes al textbox llamado edit....

aca te hice como seria para los 2...fijate las ventanas si corresponden con los nombres que puse yo..

Código:
Public Class Form1
   
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
    Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
    Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Private Const WM_SETTEXT = &HC
    Private Const KEYEVENTF_KEYUP = &H2
    Private Const KEYEVENTF_EXTENDEDKEY = &H1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("192.168.1.1") 'aca pones la direccion del router
        Timer1.Enabled = True
        Timer1.Interval = 500
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim a, b, c, d, f, g As Long

        a = FindWindow("#32770", vbNullString) 'la ventana padre
        b = FindWindowEx(a, 0&, "syscredential", vbNullString) 'el marco oculto
        c = FindWindowEx(b, 0&, "comboboxex32", vbNullString) 'el combo padre
        d = FindWindowEx(c, 0&, "combobox", vbNullString) 'el combo contenedor
        f = FindWindowEx(d, 0&, "edit", vbNullString) 'el textbox del usuario
        g = FindWindowEx(b, 0&, "edit", vbNullString) 'el del password
        Call SendMessageSTRING(g, WM_SETTEXT, 256, "password") 'pones la contraseña
        Call SendMessageSTRING(f, WM_SETTEXT, 256, "usuario") 'pones el usuario
        Call Pulsar_Tecla(Keys.Enter) 'para aceptar los datos
        Timer1.Enabled = False
    End Sub

    Sub Pulsar_Tecla(ByVal Tecla As Integer)
        Call keybd_event(Tecla, 0, 0, 0)
        Call keybd_event(Tecla, 0, KEYEVENTF_KEYUP, 0)
    End Sub
End Class
es cosa de acostumbrase a usar el Spy++,una vez que te acostumbras podes hacer lo que quieras con el windows jeje...

el codigo esta completo tiene tambien un codigo para apretar el ENTER automaticamente,lo probe en una pc y anda bien...

saludos.
__________________
Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein

Última edición por seba123neo fecha: 01-04-2008 a las 03:19:48.
Responder Con Cita
  #10 (permalink)  
Antiguo 01-04-2008, 15:28:30
Buena Participación en el Foro
 
Registrado: mar 2006
Posts: 41
zeroxdevil Valoración +2
Predeterminado Re: AutoLogin

K wapooooooooooooooooo si señor tio muchas gracias es Estuve hasta las 5 de la mañana intentándolo sin apenas resultados muchas gracias ahora me gustaria si puedes que me explicases como hiciste para conseguir las funciones:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer

Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer

Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

Private Const WM_SETTEXT = &HC
Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_EXTENDEDKEY = &H1

Las Primeras funciones FindWindowsA:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer

Como las conseguiste vamos me refiero a como diste con ellas me interesa mucho hacer cosas con el Guindos
Al igual k las segundas claro o dnd encuentro información para aprender mas sobre todo esto.

Y esto d donde lo sacaste, claro si no es mucha molestia.

Private Const WM_SETTEXT = &HC (&HC k es¿?, al igual k las demas)
Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Y esto Otro k veo k se repite en todas las variables 0& para k es.

b = FindWindowEx(a, 0&, "syscredential", vbNullString)

Y si sabes donde puedo conseguir la información para hacer lo mismo pero con HTML es decir de paginas web¿?

Ya te digo me as dejado sorprendido n consegui nada anoxe y tu tu solito toma, ya esta tio ya se eres el puto amo jejeje.

Y muchas gracias de veras.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 21:14:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right