Autor Tema: auto login para proxy  (Leído 7558 veces)

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

Asr Software

  • Bytes
  • *
  • Mensajes: 21
  • Reputación: +1/-0
    • Ver Perfil
auto login para proxy
« en: Julio 02, 2012, 05:11:47 pm »
necesito saber como puedo hacer para abrir el internet explorer o mozilla sin tener que poner el nombre de usuario y contraseña que me pide el proxy para autentificarme

Hugo

  • Visitante
Re:auto login para proxy
« Respuesta #1 en: Julio 03, 2012, 02:03:45 pm »
En Internet Explorer...

¿Ya configuraste el proxy?

¿Te lo pide, porque no lo tiene?
¿O te lo pide, aunque ya lo tiene configurado?


Asr Software

  • Bytes
  • *
  • Mensajes: 21
  • Reputación: +1/-0
    • Ver Perfil
Re:auto login para proxy
« Respuesta #2 en: Julio 04, 2012, 02:06:45 pm »
disculpa no me explique bien, lo que necesito es abrir una pagina de internet, dentro de un form de visual basic y que no me pida autentificarme, necesito pasar el nombre de usuario y la pasword desde el programa de visual basic

Hugo

  • Visitante
Re:auto login para proxy
« Respuesta #3 en: Julio 04, 2012, 09:44:52 pm »
Te entiendo, pero sigue habiendo muchas formas de interpretar tu último mensaje...

Con tres palabras en google, encontras: webbrowser proxy vb6

Link:
http://www.google.com.ar/webhp?sourceid=chrome-instant&ie=UTF-8#hl=es-419&output=search&sclient=psy-ab&q=webbrowser%20proxy%20vb6&oq=&gs_l=&pbx=1&fp=108cb0991fac95b3&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&biw=1366&bih=621

Es cosa que busques cual encaja en tu caso...

Un saludo,
Hugo

Asr Software

  • Bytes
  • *
  • Mensajes: 21
  • Reputación: +1/-0
    • Ver Perfil
Re:auto login para proxy
« Respuesta #4 en: Julio 05, 2012, 07:54:32 am »
Hugo, hermano, gracias por ayudarme, en realidad es verdad que no me he explicado bien, ya yo tengo el codigo para abrir la pagina web dentro de un form en internet, lo unico que cuando la habro el proxy me pide que me autentifique con mi nombre de ususario y password, eso es lo que quiero hacer, poner esos datos dentro del programa para que el proxy los tome de ahí, la password y el nombre siempre van a ser los mismos por lo que los dejo fijos dentro del programa y así no hace falta escribirlos.

Hugo

  • Visitante
Re:auto login para proxy
« Respuesta #5 en: Julio 05, 2012, 05:31:21 pm »
Poné una captura de pantalla, para tratar de identificar que es lo que estás viendo...

Existen muchas formas que el browser te pida autentificarte...

Luego seguismos...

Un saludo,
Hugo

Asr Software

  • Bytes
  • *
  • Mensajes: 21
  • Reputación: +1/-0
    • Ver Perfil
Re:auto login para proxy
« Respuesta #6 en: Julio 07, 2012, 10:40:30 am »



esto es lo que pone cuando habres el programa, esa es la autentificación que pide el proxy para la conexión a internet, espero que me puedas entender mejor ahora,
un saludo Abel

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:auto login para proxy
« Respuesta #7 en: Julio 09, 2012, 05:06:14 am »
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.

Código: (vb) [Seleccionar]
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 Sub

ahora 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:

Código: (vb) [Seleccionar]
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 Sub

este codigo es funcional en windows XP y los demas sistemas, pero en Windows 7 cambia el nombre de clase del contenedor.

saludos.

Asr Software

  • Bytes
  • *
  • Mensajes: 21
  • Reputación: +1/-0
    • Ver Perfil
Re:auto login para proxy
« Respuesta #8 en: Julio 09, 2012, 07:55:46 am »
Gracias hermano, no sabes de cuanta ayuda has sido y cuanto he aprendido, no conocia mucho sobre este tema, yo no me he metido mucho en esto de las web y en realidad me cuesta hacerlo, antes tenia mas time pero ahora estoy algo complicado, gracias de nuevop, me sirvió mucho, la idea de hacerlo mediante send key no me gustaba, puede traer errores y la clave puede quedar al descubierto.
nos vemos por ahi.
un abrazo,
Abel

Asr Software

  • Bytes
  • *
  • Mensajes: 21
  • Reputación: +1/-0
    • Ver Perfil
Re:auto login para proxy
« Respuesta #9 en: Julio 11, 2012, 04:57:18 pm »
seba123neo, me fue de gran utilidad el codigo que me distes, me funciona bien, ahora cuando utilizo el winhack o winspector spy no encuentro el comboboxex32, no lo veo, reviso la ventana completa y nada, estoy tratando de hacer lo mismo para windows 2000, pero no me sale, parece que hay algo que no logro captar con el winhack o winspector, si tienes tiempo y como hacerlo te pido que me ayudes, lo necesito para windows 2000 y para seven.
Un saludo