detectar página de explorer

Iniciado por lucas_b, 8 Marzo 2008, 00:58 AM

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

lucas_b

Bueno como dice el título quiero detectar la direccion escrita en el explorer cuando el usuario pulsa enter en la barra de direcciones... desde ya muchas gracias

‭‭‭‭jackl007

podrias buscarla en la memoria ^^
es mas sencillo obtener el titulo...

lucas_b

y como se podría hacer eso?? no tengo conocimientos muy avanzados, si no lo que se me había ocurrido es hacer el código de un keylogger que detecte la sucesión de teclas y listo pero es poco práctico además lo quiero centrar en el explorer

Chefito

Os dejo un pequeño código que acabo de hacer para detectar el texto de la barra de navegación (Edit). Espero que os sirva para algo:
'En el form
Private Sub Form_Load()
    Dim hwndie As Long
    Me.AutoRedraw = True
    hwndie = FindWindow("IEframe", vbNullString)
    Debug.Print hwndie
    EnumChildWindows hwndie, AddressOf EnumChildProc, ByVal 0&
End Sub


'En un modulo
Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const EM_GETLINE = &HC4

Public Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
    Dim lng As Long, buffer As String, num As Long
    buffer = Space(255)
    Ret = GetClassName(hwnd, buffer, 255)
    If Left$(buffer, Ret) = "Edit" Then
            'creamos un buffer
            buffer = Space(255)
            'obtenemos el texto del Edit del ie
            num = SendMessage(hwnd, EM_GETLINE, 1, ByVal buffer)
            Form1.Print Left(buffer, num)
            Exit Function
    End If
    'continue enumeration
    EnumChildProc = 1
End Function

Miraría lo de la pulsación, pero me voy a la cama que es muy tarde :P.
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

Chefito

Bueno....ahora que estoy más despejado que anoche te explico como lo haría yo. Lo primero te diriges a www.allapi.net y te miras los ejemplos de estas apis:
- GetKeyState (optines el estado de las teclas....a ti te interesa el estado de VK_RETURN).
- GetActiveWindow (te da el handle de la ventana que está activa. Tendrías que compararla con el handle de la ventana del explorer, que una de las formas de conseguirlo es con findwindow()....ya te lo puse en el post anterior).
- GetFocus (GetForeGrounWindow). Prácticamente te sirve para ver donde está el foco. Te interesaría saber que el foco está en el primer elemento Edit del Explorer).
Mirando los ejemplos de donde te he dicho y calentandote algo la cabeza y mezclandolos otro poco seguramente sacas lo que quieres   :rolleyes:
Pero yo me pregunto una cosa.......que es lo que quieres hacer? Saber en que páginas navega alguien. No te interesaría ir cogiendo el historial cada cierto tiempo? (Yo lo veo más facil)Ya que cogiendo la pagina web cada vez que da al enter en la barra de navegación no vas a saber siempre donde navega.....por ejemplo, se puede navegar cliqueando enlaces :). De esto hay mucho ejemplos en google.
No se...sigo diciendo que pillando el historial cada cierto tiempo (tiempo corto :)) con cuidado de que no lo borre antes de cogerlo ;) es mucho mas facil :). Y más que dandelo al enter, lo lógico sería ver que cambia ese edit (por lo de navegar cliqueando y demás).
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

‭‭‭‭jackl007

mejor di: para que quieres coger la url al momento de ingresarla?
que buscas? qe planes tienes?

lucas_b

bueno gente, la verdad que muchas gracias ya tengo mas o menos idea de como hacerlo correctamente gracias a ustedes, lo que quiero hacer es una aplicación que cuando detecte determinadas páginas en el explorer cierre el explorer ahora em voy a poner a escribir el código gracias por la ayuda

‭‭‭‭jackl007

no me digas que luego quieres cachar las passwords xD

naderST

Cita de: jackl007 ツ en  8 Marzo 2008, 16:15 PM
no me digas que luego quieres cachar las passwords xD

Jaja debe ser lo mas probable :P, no creo que quiera hacer un programa de control parental xD

lucas_b

no miren sinceramente quiero hacer un programa que cuando detecte un fotolog lo cierre... y se los voy a mandar a todos los que me dicen 4 veces al día "firmame el fotolog"