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
podrias buscarla en la memoria ^^
es mas sencillo obtener el titulo...
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
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.
Bueno....ahora que estoy más despejado que anoche te explico como lo haría yo. Lo primero te diriges a www.allapi.net (http://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.
mejor di: para que quieres coger la url al momento de ingresarla?
que buscas? qe planes tienes?
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
no me digas que luego quieres cachar las passwords xD
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
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"
Cita de: lucas_b en 8 Marzo 2008, 17:15 PM
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"
Jajaja de esos tengo yo cientos en mi msn...la verdad eske ai veces que cansa un poco si... :xD
Saludos...
simplemnte detecta el titulo de la ventana activa y luego usas la funcion InStr para encontrar la cadena "fotolog" y si es diferente de `0`pues alli cierras el iexplorer
muy buena idea lo de la ventana activa voya ver que sale con eso... con el código del keylogger detectando la sucession de teclas sale bárbaro pero esa forma parece más práctica la voy a usar... una cosa más cómo hago para ejecutar el programa como un proceso?? digamos sin que se muestre en la lista de aplicaciones cuando aprieto Ctrl+alt+Delete... que API uso?
buscaaaaaaaaaa!!!!!!!!!!!!
si quieres que no aparezca el porceso ai alguna imformacion en este foro i en www.canalvisualbasic.net (http://www.canalvisualbasic.net)si quieres que no aparezca en aplicaiones en el form load pones Form1.ShowInTaskbar = False
Jejejeje....quedrás decir en la página www.canalvisualbasic.net (http://www.canalvisualbasic.net), aunque la .com te redirecciono a la que dije anteriormente ;).
Saludos. (buena página, yo fuí operador de su canal de chat mucho tiempo).
:xD e andado postiando cosas con errores estupidos
para mi canalvisualbasic es casi una biblia
Sin problemas. No te preocupes. Todos nos equivocamos....y mucho ;D. Ya lo dice el refrán: El hombre es el único que tropieza dos veces en la misma piedra....pero si es muy bajo.....la rodea :laugh:. No es mi caso (lo de rodearla digo :P).
Saludos.