VBasicFacil

Principal - Enlaces - Código - Controles - API


Función SetKeyboardState

Declaración

Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lppbKeyState As Byte) As Long

Plataformas

Descripción

Establece el estado actual de todas las teclas virtuales del teclado.

Parámetros

lppbKeyState Una cadena de longitud fija de 256 caracteres. Cada carácter de la tabla interna de Windows de estado del teclado se fijará según el estado de su correspondiente tecla virtual en esta tabla.

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