Bloue de teclado

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
eporti
Mensajes: 15
Registrado: 11 Jun 2014, 00:11

Bloue de teclado

Mensaje por eporti »

Hola, espero me puedan ayudar, estoy haciendo un scrip donde introduzco datos por medio de un escaner y necesito bloquear el teclado para que unicamente introduzcan datos por el escaner.

Saludos
Gracias
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Bloue de teclado

Mensaje por yasmany »

BlockInput = Habilita/deshabilita el mouse y el teclado.
Busca "BlockInput " en la ayuda de autoit talvez te sirva.
Saludos :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
eporti
Mensajes: 15
Registrado: 11 Jun 2014, 00:11

Re: Bloue de teclado

Mensaje por eporti »

Hola, ya lo habia intentado asi pero solo quiero bloquear el teclado, el mouse si lo necesito.
Gracias
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Bloue de teclado

Mensaje por Chefito »

Utilizando hook se puede. Se puede capturar la pulsación del teclado y anularla haciendo que el mensaje no llege. Todo esto esta más que explicado en post anteriores.
Como dije en un post reciente, buscad en el buscador del foros, que este tema está más que trillado. Un post con enlaces sobre este tema: http://www.emesn.com/autoitforum/viewto ... las#p16505

Y un post mucho más especifico donde explico un poco como se anulan teclas es este: http://www.emesn.com/autoitforum/viewto ... hook#p9406

Un ejemplo de lo dicho anteriormente lo tienes en la ayuda, en la función _WinAPI_SetWindowsHookEx que pertenece a la udf winapi. Quitando lo que no necesitas de ese ejemplo y no haciendo llegar el mensaje de la pulsación devolviendo -1, tienes lo que quieres:

Código: Seleccionar todo

#include <WinAPI.au3>
;~ #include <WindowsConstants.au3>
;~ #include <StructureConstants.au3>

Global $hHook, $hStub_KeyProc

OnAutoItExitRegister("Cleanup")

Local $hmod

$hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
$hmod = _WinAPI_GetModuleHandle(0)
$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)

While 1
	Sleep(10)
WEnd

; ===========================================================
; callback function
; ===========================================================
Func _KeyProc($nCode, $wParam, $lParam)
    Return -1
EndFunc   ;==>_KeyProc

Func Cleanup()
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_KeyProc)
EndFunc   ;==>Cleanup
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Responder