Como controlar la pulsacion de varias teclas a la misma vez

04/12/2006 - 17:44 por aydai | Informe spam
Hola a todos, queria saber si sabeis como controlar la pulsacion de una
combinacion de teclas, en concreto quiero que se controle la pulsacion del
control+tabulador+(-)

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
04/12/2006 - 18:32 | Informe spam
"" wrote in message
news:ees2%
Hola a todos, queria saber si sabeis como controlar la pulsacion de una
combinacion de teclas, en concreto quiero que se controle la pulsacion del
control+tabulador+(-)



Para el tabulador y el (-) tendrás que usar los eventos KeyDown y KeyUp
para saber cuándo se aprieta y cuando se suelta una tecla, y controlar
cuándo están ambas "bajadas" mediante una variable de clase en el
formulario. La tecla Control es más sencilla, porque en el KeyDown te llega
un parámetro "e" del tipo KeyEventArgs que tiene una propiedad booleana
"Control" que te dice si la tecla Control estaba pulsada.
Respuesta Responder a este mensaje
#2 aydai
05/12/2006 - 09:47 | Informe spam
Muchas gracias Alberto, pero he descubierto una forma que quiza te interese.

En el modulo te declaras la funcion API getkeystate

Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Integer)
As Short



Despues en el keydown pones el siguiente codigo

If GetKeyState(System.Windows.Forms.Keys.Tab) < 0 And
GetKeyState(System.Windows.Forms.Keys.Subtract) < 0 And
GetKeyState(System.Windows.Forms.Keys.ControlKey) < 0 Then

msgbox("Pulsacion correcta")

Estadistica2()

Exit Sub

End If

Gracias por todo


"Alberto Poblacion"
escribió en el mensaje news:
"" wrote in message
news:ees2%
Hola a todos, queria saber si sabeis como controlar la pulsacion de una
combinacion de teclas, en concreto quiero que se controle la pulsacion
del control+tabulador+(-)



Para el tabulador y el (-) tendrás que usar los eventos KeyDown y KeyUp
para saber cuándo se aprieta y cuando se suelta una tecla, y controlar
cuándo están ambas "bajadas" mediante una variable de clase en el
formulario. La tecla Control es más sencilla, porque en el KeyDown te
llega un parámetro "e" del tipo KeyEventArgs que tiene una propiedad
booleana "Control" que te dice si la tecla Control estaba pulsada.



Respuesta Responder a este mensaje
#3 Alberto Poblacion
05/12/2006 - 11:25 | Informe spam
"" wrote in message
news:%
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As
Integer) As Short
[...]
If GetKeyState(System.Windows.Forms.Keys.Tab) < 0 And
GetKeyState(System.Windows.Forms.Keys.Subtract) < 0 And
GetKeyState(System.Windows.Forms.Keys.ControlKey) < 0 Then



Muchas gracias, efectivamente la API GetKeyState es útil para resolver
el problema. Básicamente, lo que yo te sugería de usar el KeyDown y KeyUp
para guardar el estado de la tecla en una variable de clase, al final lo que
conseguía era "emular" mediante código gestionado la misma funcionalidad que
te da el GetKeyState mediante código no-gestionado (es decir, saber si la
tecla está o no pulsada en un momento dado).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida