Autor Tema: Obtener Datos del Proxy con VB6  (Leído 6113 veces)

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

Hugo

  • Visitante
Obtener Datos del Proxy con VB6
« en: Abril 29, 2011, 12:02:01 am »
Hola Leandro y amigos del foro,

Buenas noches a todos, espero que estén bien...
Tengo una duda que no logro resolver...

¿Cómo obtengo los datos del proxy desde VB6?

Mi intensión es no tocar el registro y obtener esos datos (ip, puerto, etc) de apis... pero buscando en google, no encontré alguna api que haga eso... también busqué aquí... y tampoco...

Alguien sabe como hacer eso?


Desde ya muchas gracias,
Un saludo,
Hugo

Juan Luis López

  • Bytes
  • *
  • Mensajes: 30
  • Reputación: +2/-0
  • No nos mires ¡UNETE!
    • Ver Perfil
    • #spanishrevolution
Re:Obtener Datos del Proxy con VB6
« Respuesta #1 en: Mayo 08, 2011, 11:26:45 pm »
Que datos quieres conseguir?
Es un proxy a traves del cual te conectas?
si es que sabes su IP y quieres mas informacion sobre esta tienes esta web:
http://www.ip-db.com/
Yo hice hace tiempo un programa para sacar datos de una IP (localizacion mas que nada) en VB conectandome a esta web a traves del programa.

no se si es lo que buscas.

Saludos
Juventud SIN futuro. Sin casa, sin curro, sin pensión, ¡Sin miedo!

Hugo

  • Visitante
Re:Obtener Datos del Proxy con VB6
« Respuesta #2 en: Mayo 09, 2011, 10:37:35 am »
Hola Juan,

Muy buenos días y gracias por la respuesta...

En realidad, lo que quiero es acceder a la configuración del proxy de Internet Explorer...
Por ejemplo, ver la siguiente imagen...




Sé que se puede acceder a esos datos, a travéz del registro de Windows, pero me gustaría saber como es para acceder a esos datos por las APIs, seguramente existe... pero no se como es... eso que he buscado; quizas sea porque no se el "termino" correcto para encontrarlo fácilmente...

Alguien sabe como acceder a esos datos desde APIs?

Muchas graciasssss!!!

Un saludo,
Hugo

Juan Luis López

  • Bytes
  • *
  • Mensajes: 30
  • Reputación: +2/-0
  • No nos mires ¡UNETE!
    • Ver Perfil
    • #spanishrevolution
Re:Obtener Datos del Proxy con VB6
« Respuesta #3 en: Mayo 09, 2011, 11:38:10 am »
El problema es que no sabes donde estan en el registro o que no sabes como leer entradas del registro?
Puede que esten aqui:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
Juventud SIN futuro. Sin casa, sin curro, sin pensión, ¡Sin miedo!

Hugo

  • Visitante
Re:Obtener Datos del Proxy con VB6
« Respuesta #4 en: Mayo 09, 2011, 10:49:56 pm »
Hola Juan,

Nuevamente gracias, te agradezco de corazón tu aporte...

Existe alguna forma de acceder a estos datos, pero desde APIs??

Esa es mi pregunta...

Pero... ¿Porque pregunto esto?

Porque según entiendo, si tu programa intenta acceder al registro de Windows, necesitará más "privilegios de acceso" que los "normales" y entonces... puede que esto se transforme en un problema para los usuarios no experimentados...

Por eso, me gustaría encontrar la forma, si es que existe... de acceder a ESOS datos, pero... desde APIs

Desde ya muchas gracias,
Un saludo,
Hugo

Juan Luis López

  • Bytes
  • *
  • Mensajes: 30
  • Reputación: +2/-0
  • No nos mires ¡UNETE!
    • Ver Perfil
    • #spanishrevolution
Re:Obtener Datos del Proxy con VB6
« Respuesta #5 en: Mayo 09, 2011, 11:43:31 pm »
Ok ya te entendí.
He buscado y he encontrado esto:
Esta clase te dice entre otras cosas si estas conectado a través de un proxy:
Módulo de clase Red Internet

Y luego en el API Guide he visto:
InternetGetConnectedState
InternetGetConnectedStateEx
y InternetOpen (que creo que es la que mas te puede ayudar) pero no se si delo todo.

Bueno esto es lo que he podido buscar.

Saludos y suerte.
Juventud SIN futuro. Sin casa, sin curro, sin pensión, ¡Sin miedo!

Hugo

  • Visitante
Re:Obtener Datos del Proxy con VB6
« Respuesta #6 en: Mayo 10, 2011, 07:41:37 am »
Nuevamente gracias Juan,

La causa de mi búsqueda me ha llevado también a estas páginas, pero no es exactamente lo que estoy buscando...

En cuanto lo encuentre lo publicaré aquí para que quede la solución...

Un gran saludo,
Hugo

--

PD: Quizás si explico un poco que estoy haciendo, se podría poner más luz en este asunto...

Estoy descargando archivos de Internet... y estoy usando Microsoft WinHTTP Services...
El siguiente es una parte del código...
El agregado es el dato de Proxy, que el usuario debe setear a mano, pero justamente, yo quiero automatizarlo  y quiero que ese dato lo obtenga de la configuración de, por ejemplo, Internet Explorer...

        Set HTTPDownload = New WinHttp.WinHttpRequest
        IsDownloading = True

        'La siguiente es la línea que quiero mejorar...
        HTTPDownload.SetProxy frmPrincipal.txtSetProxy.Text, frmPrincipal.txtProxy.Text, frmPrincipal.txtNoProxy.Text

        HTTPDownload.Option(WinHttpRequestOption_EnableHttp1_1) = True
        HTTPDownload.Option(WinHttpRequestOption_EnableRedirects) = True
        HTTPDownload.Open "GET", StrUrl, True
        'HTTPDownload.SetRequestHeader "Accept-Language", "en-us"
        HTTPDownload.SetRequestHeader "User-Agent", scUserAgent
        HTTPDownload.SetRequestHeader "Accept", "*/*"


GRACIAS, GRACIAS y GRACIAS por la ayuda...

Un saludo!!

Lolabyte

  • Bytes
  • *
  • Mensajes: 35
  • Reputación: +15/-0
    • Ver Perfil
Re:Obtener Datos del Proxy con VB6
« Respuesta #7 en: Mayo 11, 2011, 04:26:11 am »
En esta paginas he encontrado como acceder a los datos del proxy

en esta usando vbscript
http://blogs.technet.com/b/heyscriptingguy/archive/2005/05/19/how-can-i-switch-between-using-a-proxy-server-and-not-using-a-proxy-server.aspx

en esta usando un archivo .bat
http://foro.ethek.com/viewtopic.php?f=21&t=15645&start=0&sid=4638945dc30ea36bf6df2a69c0eebdb1

y en esta usando la api de wininet.dll InternetQueryOption
http://www.vbmonster.com/Uwe/Forum.aspx/vb-networks/333/Proxy-settings

en vb6, leyendo el registro de windows. se podria usar esto
Código: [Seleccionar]
'Constantes para acceder a las diferentes ramas del registro
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005

Dim Wmi As Object
Dim ret As Long
Dim Name_Computadora As String, Path_Clave As String, Nombre_Valor As String, Valor As String


'Computadora local
Name_Computadora = "."
   
   
Set Wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
                    & Name_Computadora & "\root\default:StdRegProv")

   
' Ruta de la clave a leer
Path_Clave = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings"
   
'////////////////////////////////////////////////////////////////////////////////////////
' Servidores proxy HTTP, Seguro, FTP, Socks
Nombre_Valor = "ProxyServer"

ret = Wmi.GetStringValue(HKEY_LOCAL_MACHINE, Path_Clave, Nombre_Valor, Valor)
   
MsgBox " Servidores proxy HTTP, Seguro, FTP, Socks: " & Valor, vbInformation
'////////////////////////////////////////////////////////////////////////////////////////

'////////////////////////////////////////////////////////////////////////////////////////
' proxy excepciones
Nombre_Valor = "ProxyOverride"

ret = Wmi.GetStringValue(HKEY_LOCAL_MACHINE, Path_Clave, Nombre_Valor, Valor)
   
MsgBox " proxy excepciones: " & Valor, vbInformation
'////////////////////////////////////////////////////////////////////////////////////////

Set Wmi = Nothing
« última modificación: Mayo 11, 2011, 04:35:14 am por Lolabyte »

Hugo

  • Visitante
Re:Obtener Datos del Proxy con VB6
« Respuesta #8 en: Mayo 11, 2011, 09:39:53 am »
Hola Lolabyte,

Muy buenos días y gracias por el aporte...
Imaginaba que había una solución así...

Probé el siguiente código y me funcionó, tal como lo necesitaba...

Código: [Seleccionar]
Private Const INTERNET_OPTION_PROXY As Long = 38

Private Declare Function InternetQueryOption Lib "wininet.dll" _
               Alias "InternetQueryOptionA" (ByVal hInternet As Long, _
                             ByVal dwOption As Long, _
                             ByRef lpBuffer As Any, _
                             ByRef lpdwBufferLength As Long) As Long

Private Sub Command1_Click()
   ' dimensiono un buffer grande a sufficienza per
   ' ricevere i dati di risposta
   Dim buffer As String * 4096
   
   Dim nullPos As Long
   Dim cbBuffer As Long
   Dim ret As Long
   
   cbBuffer = Len(buffer)
   
   ret = InternetQueryOption(0&, INTERNET_OPTION_PROXY, _
                               ByVal buffer, cbBuffer)
   If (ret) Then
 nullPos = InStr(13, buffer, vbNullChar, vbBinaryCompare)
       If (nullPos) Then
           Debug.Print "Proxy and Port = " & _
 Mid$(buffer, 13, nullPos - 13)
       Else
           Debug.Print "Proxy and Port = " & _
 Mid$(buffer, 13)
       End If
   Else
       MsgBox "Errore " & CStr(Err.LastDllError), vbCritical
   End If

End Sub


Mil gracias a todos, de corazón...
Y aquí esta la solución... una vez más!

Un saludo,
Hugo