Mira el codigo seria mas o menos asi:
Código:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
Esta función determina si una tecla está o no presionada en el momento en que la función es llamada, o después de una llamada previa a la misma función.
Código:
Private Sub CapturarTeclas()
Dim intAscii As Long
Dim Retorno As Long
For intAscii = 8 To 255
Retorno = GetAsyncKeyState(intAscii)
If Retorno = -32767 Then 'Tecla presionada
MsgBox(Chr(intAscii))
End If
System.Windows.Forms.Application.DoEvents()
Next
End Sub Este sería el procedimiento que utiliza la función. Recorremos del 8 al 255 para controlar cual tecla fue presionada con la funcion GetAsyncKey. Como la función devuelve un tipo de dato short, lo que tenemos que hacer es comprobar si el bit más significativo del byte de mayor orden está activado, representando que la tecla esté siendo presionada, y si está activo el bit menos significativo, representando que la tecla ha sido presionada después de la última llamada a GetAsyncKeyState. Esto seria el número -32767 o 8001 en hexadecimal.
Luego llamas el procedimiento para q este activo todo el tiempo
Código:
Do
Call CapturarTeclas()
Loop así podes saber que tecla fué precionada a nivel windows.
Espero te ayude
Saludos