Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Detectar cuando se presiona una tecla o combinación de teclas

  • 0 Respuestas
  • 1839 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5490
  • Actividad:
    6.67%
  • Reputación 36
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Julio 26, 2010, 12:12:16 pm »
Esto es a pura API de Windows usaremos la función GetKeyState de la libreria user32. Si queremos detectar la o las teclas presionadas tenemos que llamar a la función pasándole como parámetro el código ASCII de la o las teclas que queremos analizar. Si la tecla está pulsada, la función devuelve –127 o –128. (Se van alternando los valores a cada pulsación completa.) Cuando no está apretada, la función devuelve 0 o 1. Resumiendo, la tecla está pulsada si la función devuelve un número menor de 0.
Para ver una demostración de esta función, podemos crear un Label y un Timer con el Interval bajo (para que continuamente se produzca el Timer1_Timer). Añadir este código:

Código: Visual Basic
  1. Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
  2. Private Sub Timer1_Timer()
  3. If GetKeyState(32) < 0 And GetKeyState(vbKeyUp) < 0 Then
  4. Label1.Caption = "Estás pulsando espacio y arriba a la vez."
  5. Else
  6. Label1.Caption = "No"
  7. End If
  8. End Sub

Al ejecutar el programa, el texto del Label será No; pero al apretar Espacio y Flecha Arriba a la vez, el texto cambiará hasta que dejen de pulsarse estas teclas.

Recuerden poner intervalo al timer y enable=True
« Última modificación: Mayo 12, 2014, 03:10:49 pm por Expermicid »


 

¿Te gustó el post? COMPARTILO!



Cómo detectar errores en Visual Basic

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2730
Último mensaje Julio 26, 2010, 11:40:10 am
por ANTRAX
Capturador De Teclas

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2113
Último mensaje Julio 26, 2010, 12:52:54 pm
por ANTRAX