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:
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:
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:
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
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
debes cojer el hwnd de la ventana activa, entonces después:
if Ventana_Activa = GetForegroundWindow() then
'notificas las teclas
else
'capturas teclas
end if
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)
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.
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