| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | | 
| 
31-03-2008, 17:07:04
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 41
| | 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 | 
31-03-2008, 17:24:10
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 367
| | 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 | 
31-03-2008, 20:58:34
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 41
| | 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. | 
31-03-2008, 23:09:10
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 367
| | 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 | 
31-03-2008, 23:13:51
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 41
| | Re: AutoLogin OK tio Gracias voy a probarlo ahora mismo si funciona te lo digo ok. | 
01-04-2008, 00:33:44
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 41
| | 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. | 
01-04-2008, 00:43:02
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 367
| | 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 | 
01-04-2008, 01:35:16
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 41
| | Re: AutoLogin Este es el cuadro | 
01-04-2008, 03:16:50
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 367
| | 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.
| 
01-04-2008, 15:28:30
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 41
| | 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. | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | 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
|  |