Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[SOLUCIONADO] Reconocer teclado en cualquier momento

Estas en el tema de Reconocer teclado en cualquier momento en el foro de Visual Basic clásico en Foros del Web. Buen dia Veran necesito hacer un programa que me reconozca una tecla en cualquier momento en window bien sea que este uno de mis formularios ...
  #1 (permalink)  
Antiguo 24/01/2012, 17:02
Ecj
 
Fecha de Ingreso: octubre-2008
Mensajes: 63
Antigüedad: 15 años, 6 meses
Puntos: 0
Reconocer teclado en cualquier momento

Buen dia

Veran necesito hacer un programa que me reconozca una tecla en cualquier momento en window bien sea que este uno de mis formularios en pantalla o no.

Es decir que si por ejemplo estan trabajando en word y presionan

CTRL + K Mi aplicacion lo reconozca y muestre un mensaje.

Yo tengo hecho la parte de reconocer las teclas pero solo me funciona si mi formulario esta visible, lo tengo en el evento keypress de mi form.

Como puedo hacerlo para que me funcione siempre .


MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 25/01/2012, 03:25
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Reconocer teclado en cualquier momento

Creo que para eso tienes que poner un timer con un interval de 100 o asi, y dentro usar la api GetAsyncKeyState
algo asi:

Código vb:
Ver original
  1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  2.  
  3. Private Sub Timer1_Timer()
  4.   if GetAsyncKeyState(vbKeyControl)<>0 then
  5.     if GetAsyncKeyState(vbKeyK)<>0 then
  6.       msgbox "pulsado ctrl+k"
  7.     end if
  8.   end if
  9. End Sub
de ese modo siempre se esta mirando el teclado
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: momento, programa, reconocer, teclado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:57.