La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1514 - DETERMINAR SI UNA TECLA A SIDO PULSADA
Autor:  Xavi
Estoy desarrollando una aplicación y necesito saber si, en algún momento, el usuario ha pulsado la tecla de tabulación desde que se inicio el programa o desde la anterior ocasión en que se haya hecho.

  Respuesta:  Xavi
Para este problema, puedes emplear la función de la API GetKeyState con la constante correspondiente a la tecla TAB, que es VK_TAB
Aunque realmente es algo más compleja, a los efectos que nos ocupan, cuando se llama, esta función devuelve un 1 o un 0, alternando cada vez que se pulsa la tecla indicada como parámetro. Es decir, que si arranca su aplicación y la función le devuelve un 1, y al cabo de un rato le devuelve un 0, es que la han pulsado.
Puedes comprovar con un temporizador el estado de la tecla para enterarse de cuando la pulsan.

Las declaraciones son:
Private Const VK_TAB = &H9
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey as Long) as Integer
y se usa por ejemplo así: MsgBox GetKeyState(VK_TAB)

Texto sacado de la revista PC World