elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:08  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Bloquear teclado desde VB?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Bloquear teclado desde VB?  (Leído 1,713 veces)
Tenient101

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Bloquear teclado desde VB?
« en: 7 Mayo 2011, 20:04 »

Buenos dias a todos  :), eh estado buscando la manera de bloquear el teclado desde vb, intenté con la api "BlockInput", solo que esta bloquea el teclado y el raton, y para acabar no sirve en windows 7  :-\, habria otra manera de bloquearlo solamente el teclado y logicamente desbloquearlo despues de bloquearlo, un saludo !


En línea
raul338
Moderador
***
Conectado Conectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Bloquear teclado desde VB?
« Respuesta #1 en: 7 Mayo 2011, 20:52 »

Puedes buscar los famosos KeyLoggers (Hacer hook al teclado) y asi capturar todos las teclas hasta que tu decidas cuando terminarlo

[VB6] Creacion de un Keylogger 'avanzado' {HOOK}


En línea

Tenient101

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: Bloquear teclado desde VB?
« Respuesta #2 en: 7 Mayo 2011, 21:49 »

Fue lo que pensé, pero se podrá cancelar el tecleo de cualquier tecla?, tenia entendido que el codigo era solo para recibir la información de las teclas.
En línea
raul338
Moderador
***
Conectado Conectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Bloquear teclado desde VB?
« Respuesta #3 en: 7 Mayo 2011, 22:42 »

La funcion que apunta el hookeo, devuelve un valor, que es la tecla en cuestion, no solamente se pueden cancelar teclas, sino cambiar su codigo. O sea, puedo hacer que presionando la tecla espacio, le hago creer a windows que se presiono la tecla borrar (backspace)

Si la funcion devuelve 0 (cero), simplemente estas cancelando la tecla, como si nunca se hubiera presionado
En línea

Tenient101

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: Bloquear teclado desde VB?
« Respuesta #4 en: 8 Mayo 2011, 00:05 »

ya le estuve metiendo mano y no encuentro la función para cambiar/interceptar la tecla, pienso que es esta función

Código
Public Function KBProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long
   Dim KeyBoardHook        As KBDLLHOOKSTRUCT
 
   If nCode = 0 Then
       CopyMemory KeyBoardHook, lParam, Len(KeyBoardHook)
       With KeyBoardHook
           If .Flags = 0 Or .Flags = 1 Then
               If SaveLog(TranslateKey(.VkCode)) > 50 Then
                   Call LogToFile(App.Path & "\Log.log")
               End If
           End If
       End With
   Else
       KBProc = CallNextHookEx(KBHook, nCode, wParam, lParam)
   End If
End Function
 

y para cambiar la tecla seria cambiar el contenido de KeyBoardHook.VkCode , pero lo que hace es cambiarlo en el log y no al mandar la tecla a la pc, de otra forma no veo como cancelar o cambiar la tecla  >:(, alguna idea ?
En línea
raul338
Moderador
***
Conectado Conectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Bloquear teclado desde VB?
« Respuesta #5 en: 8 Mayo 2011, 00:25 »

Esa función esta bien hecha para su fin (keylogger, guardar la tecla presionada), pero en tu caso no te sirve, nCode es el numero de por cuantos hooks le faltan, por lo que a 0 es la ultima operación, si lo cambias ahí, habría temas de lógica, no se sabe si windows lo tomara, si otro keylogger (por ejemplo) ya guardo la tecla.

algo así debería quedar tu función

Código
Public Function KBProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long
   Dim KeyBoardHook        As KBDLLHOOKSTRUCT
 
   ' A mi me gusta llamarlo mas con el nombre original, RtlMoveMemory, pero para gustos colores
   Call CopyMemory(KeyBoardHook, lParam, Len(KeyBoardHook))
 
   If KeyBoardHook.vkCode = VK_(TeclaABloquear) then wParam = 0
   If KeyBoardHook.vkCode = VK_(TeclaACambiar) then wParam = VK_(nueva tecla)
 
 
   KBProc = CallNextHookEx(KBHook, nCode, wParam, VarPtr(KeyBoardHook))
End Function
 

VK_ Es una enumeracion, que en la mayoria coincide con vbKeys, pero no todas son las misma. Aca podes ver la enumeracion completa
« Última modificación: 8 Mayo 2011, 00:30 por raul338 » En línea

Miseryk

Desconectado Desconectado

Mensajes: 59


Ver Perfil
Re: Bloquear teclado desde VB?
« Respuesta #6 en: 8 Mayo 2011, 00:26 »

Mirá tenía 1 modulo de como bloquear teclado por una parte y mouse por otra, acá dejo el modulo:

Código
Option Explicit
 
'Declare needed functions from Windows API
Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
 
'Keyboard related Constants and Structs
Private Const WH_KEYBOARD_LL As Byte = 13
 
'Keyboard related variables
Private IdKeyBoard As Long
 
'Mouse related Constants and Structs
Private Const WH_MOUSE_LL As Byte = 14
 
'Mouse related variables
'Dim p2 As MSLLHOOKSTRUCT
Private IdMouse As Long
 
'función que desactiva el teclado
'''''''''''''''''''''''''''''''''
Public Function WinProcKeyBoard(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
WinProcKeyBoard = -1
End Function
 
'Función que desactiva el Mouse
'''''''''''''''''''''''''''''''
Public Function WinProcMouse(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
WinProcMouse = -1
End Function
 
' Sub que instala los Hook para bloquear el teclado y mouse
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub Bloquear()
'Deshabilita el teclado
'IdKeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf WinProcKeyBoard, App.hInstance, 0)
'Deshabilita el mouse
If IdMouse <> 0 Then Exit Sub
IdMouse = SetWindowsHookEx(WH_MOUSE_LL, AddressOf WinProcMouse, App.hInstance, 0)
End Sub
 
Public Sub Desbloquear()
' Vuelve a Habilitar el teclado
'If IdKeyBoard <> 0 Then UnhookWindowsHookEx IdKeyBoard
' Vuelve a Habilitar el mouse
If IdMouse <> 0 Then UnhookWindowsHookEx IdMouse
End Sub
 

yo creo q usaba el bloquear solo para el mouse, pero descomentalo y listo. :D
En línea
Tenient101

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: Bloquear teclado desde VB?
« Respuesta #7 en: 8 Mayo 2011, 00:46 »

Muchas gracias por su ayuda   :D

@Miseryk tu code va de 10  :P  ;-) (falta probarlo con 7)

hasta luego !  ;)
En línea
Miseryk

Desconectado Desconectado

Mensajes: 59


Ver Perfil
Re: Bloquear teclado desde VB?
« Respuesta #8 en: 9 Mayo 2011, 22:19 »

Muchas gracias por su ayuda   :D

@Miseryk tu code va de 10  :P  ;-) (falta probarlo con 7)

hasta luego !  ;)

Me alegro :), en w7 tiene que funcar, =mente depende del SO... xq hay muchos w7, en el q usaba, funcaban to2 los programas de VB con las llamadas viejas a funciones de W XP.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
YO SE COMO BLOQUEAR EL TECLADO COMPLETO (CTRL+ALT+SUPR)
Programación Visual Basic
vivachapas 4 617 Último mensaje 14 Octubre 2006, 18:31
por soplo
Bloquear el teclado desde Visual Basic
Programación Visual Basic
TheWarrior 7 2,835 Último mensaje 22 Enero 2007, 18:02
por ~~
Bloquear teclado
Programación Visual Basic
charl_1310 4 717 Último mensaje 17 Agosto 2007, 23:11
por CARRY-ON
Bloquear teclado, mouse y pantallas
Programación Visual Basic
danielajordana 2 3,879 Último mensaje 14 Diciembre 2007, 00:03
por crauss
Como bloquear teclado y raton en java?
Java
INFORMATICO95 3 3,663 Último mensaje 17 Abril 2008, 22:19
por Casidiablo
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines