VBasicFacil

Principal - Enlaces - Código - Controles - API


Función GetKeyboardState

Declaración

Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long

Plataformas

Descripción

Recupera el estado actual de cada tecla virtual del teclado.

Parámetros

pbKeyState El primer ítem de una matriz de 256 entradas. En cada byte se cargará el estado de la tecla virtual correspondiente. Para las teclas inversoras (CapsLock, NumLock y ScrollLock) el bit 0 se pone en 1 si la tecla esta activa. El bit 7 es 1 si la tecla eta pulsada, en caso contrario.

Valor de retorno

Devuelve un cero si se produce un error y distinto de cero si no se produce error.

Ejemplo

Vamos a crear un formulario y manejarnos en el con las flechas del teclado en lugar del tabulador

Formulario (Contiene tres TextBox)

Option Explicit



Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
    Dim Tecla(0 To 255) As Byte
    Select Case KeyCode
        Case vbKeyRight, vbKeyDown:     ' Flecha derecha y flecha abajo
            ' Simulamos la pulsación del la tecla TAB
            PostMessage Text1(Index).hwnd, WM_KEYDOWN, VK_TAB, 0
        Case vbKeyLeft, vbKeyUp:
            GetKeyboardState Tecla(0)
            ' Simulación de la pulsación de la tecla SHIFT
            Tecla(VK_SHIFT) = True
            SetKeyboardState Tecla(0)
            ' Simulamos la pulsación de la tecla TAB
            PostMessage Text1(Index).hwnd, WM_KEYDOWN, VK_TAB, 0
            DoEvents
            ' Liberación de la tecla SHIFT
            Tecla(VK_SHIFT) = False
            SetKeyboardState Tecla(0)
    End Select
    ' Vaciamos el buffer del teclado
    KeyCode = 0
End Sub
	

Modulo (Implementado solo por claridad, podría ir en el formulario)

Option Explicit


Public Declare Function PostMessage _
        Lib "user32" _
        Alias "PostMessageA" _
       (ByVal hwnd As Long, _
        ByVal wMsg As Long, _
        ByVal wParam As Long, _
        ByVal lParam As Long) As Long
Public Declare Function SetKeyboardState _
        Lib "user32" _
       (lppbKeyState As Byte) As Long
Public Declare Function GetKeyboardState _
        Lib "user32" _
       (pbKeyState As Byte) As Long

Public Const WM_KEYDOWN = &H100
Public Const VK_TAB = &H9
Public Const VK_SHIFT = &H10

Descargar Codigo : SetKeyboardState.zip

 

Aplicaciones: Activar/desactivar el teclado numérico

Ver también:

Categoría: Teclado


Ultima actualización : 7 de diciembre de 2001
Copyright © 2001 Silared, s.l.
correo-e : vbasicfacil@silared.com
Site : www.vbasicfacil.com