claro, es la pantalla de login, la misma que aparece cuando entras a la configuracion de un router cualquiera.
para hacer eso yo hace mucho habia hecho un codigo para "autologuearse automaticamente". esto lo haces tranquilo con apis como
SendMessage,
FindWindow y
FindWindowsEx para las ventanas hijas.
aca te pongo un ejemplo que habia hecho para la gente que no tiene en claro todavia como usar este tema de las apis para encontrar ventanas a traves del nombre de clase de las mismas, un ejemplo simple con el notepad de windows, ya que algunos lo hacen con SendKeys pero es no es optimo y puede fallar.
El tema es sacar 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 y de la ventana y eso lo podes averiguar con la aplicacion que viene con visual basic llamada
Spy++, o cualquiera similar.
por ejemplo, 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 del bloc de notas para escribir con el
Spy++:
este es el nombre de clase de la ventana padre, llamada
Notepad:

este es el nombre del control textbox dentro de la ventana padre, llamado
Edit:

para saber los datos de la ventana, tenes que arrastrar el "iconito del spy++" 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 (Hwnd en visual basic) es el numero(Long) que le asigna windows a cada ventana, es como si fuera el numero que identifica esa ventana, sabiendo eso, podes hacer un monton de cosas a la ventana, cerrarla, moverla, resizarla, cambiar valores,etc.
el
Class en el Spy++ es el "nombre de clase" del control, o sea cada control tiene su nombre.
ahora fijate con este codigo como escribo en el bloc de notas, usando unas funciones api's.
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_SETTEXT = &HC
Private Sub Form_Load()
Dim a As Long
Dim b As Long
a = FindWindow("Notepad", vbNullString)
If a <> 0 Then
b = FindWindowEx(a, 0&, "Edit", vbNullString)
SendMessageSTRING b, WM_SETTEXT, 256, "Holaaaaaaaaaaaa"
Else
MsgBox "abri el notepad primero", vbExclamation
End If
End Subahora para el login del internet explorer la cosa se pone mas complicada, ya que hay como un marco o frame que esta oculto a la vista, pero con el Spy++ lo podes ver se llama
syscredential , y 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 al primer control directamente, primero tenes que acceder al Hwnd del marco y despues al del control hijo o sea el textbox.
el textbox del 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 tiene un textbox llamado
combobox y despues recien ahi accedes al textbox llamado
edit.
el codigo:
Option Explicit
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_SETTEXT = &HC
Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const VK_ENTER = &HD
Private Sub Form_Load()
WebBrowser1.Navigate ("192.168.1.1") 'aca pones la direccion del router
Timer1.Enabled = True
Timer1.Interval = 500
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
Private Sub Timer1_Timer()
Dim a As Long, b As Long, c As Long, d As Long, f As Long, 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 textbox 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(VK_ENTER) 'Enter para aceptar los datos
Timer1.Enabled = False
End Subeste codigo es funcional en windows XP y los demas sistemas, pero en Windows 7 cambia el nombre de clase del contenedor.
saludos.