Autor
|
Tema: Bloquear teclado desde VB? (Leído 13,442 veces)
|
Sanlegas
Desconectado
Mensajes: 131
https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-
|
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
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
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
|
|
|
|
Sanlegas
Desconectado
Mensajes: 131
https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-
|
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
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
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
|
|
|
|
Sanlegas
Desconectado
Mensajes: 131
https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-
|
ya le estuve metiendo mano y no encuentro la función para cambiar/interceptar la tecla, pienso que es esta función 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
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
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 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 am por raul338 »
|
En línea
|
|
|
|
Miseryk
Desconectado
Mensajes: 225
SI.NU.SA U.GU.DE (2NE1 - D-Unit)
|
Mirá tenía 1 modulo de como bloquear teclado por una parte y mouse por otra, acá dejo el modulo: 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.
|
|
|
En línea
|
Can you see it? The worst is over The monsters in my head are scared of love Fallen people listen up! It’s never too late to change our luck So, don’t let them steal your light Don’t let them break your stride There is light on the other side And you’ll see all the raindrops falling behind Make it out tonight it’s a revolution
CL!!!
|
|
|
Sanlegas
Desconectado
Mensajes: 131
https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-
|
Muchas gracias por su ayuda @Miseryk tu code va de 10 (falta probarlo con 7) hasta luego !
|
|
|
En línea
|
|
|
|
Miseryk
Desconectado
Mensajes: 225
SI.NU.SA U.GU.DE (2NE1 - D-Unit)
|
Muchas gracias por su ayuda @Miseryk tu code va de 10 (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
|
Can you see it? The worst is over The monsters in my head are scared of love Fallen people listen up! It’s never too late to change our luck So, don’t let them steal your light Don’t let them break your stride There is light on the other side And you’ll see all the raindrops falling behind Make it out tonight it’s a revolution
CL!!!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Bloquear el teclado desde Visual Basic
Programación Visual Basic
|
TheWarrior
|
7
|
8,945
|
22 Enero 2007, 18:02 pm
por ~~
|
|
|
Bloquear teclado
Programación Visual Basic
|
charl_1310
|
4
|
2,511
|
17 Agosto 2007, 23:11 pm
por CARRY-ON
|
|
|
Bloquear teclado, mouse y pantallas
Programación Visual Basic
|
danielajordana
|
2
|
6,681
|
14 Diciembre 2007, 00:03 am
por crauss
|
|
|
Como bloquear teclado y raton en java?
Java
|
INFORMATICO95
|
3
|
8,030
|
17 Abril 2008, 22:19 pm
por Casidiablo
|
|
|
Bloquear el teclado
.NET (C#, VB.NET, ASP)
|
Sentex
|
3
|
3,229
|
2 Junio 2017, 21:56 pm
por Sentex
|
|