Entrada de teclado

En esta sección se describe de qué forma el sistema genera la entrada de teclado y cómo una aplicación recibe y procesa esa entrada.

En esta sección

Nombre Descripción
Acerca de la entrada de teclado Describe la entrada del teclado.
Uso de la entrada de teclado Trata las tareas asociadas a la entrada del teclado.
Referencia de la entrada del teclado Contiene la referencia de la API.

Funciones

Nombre Descripción
ActivateKeyboardLayout Establece el identificador de la configuración regional de entrada (antes denominado identificador de distribución del teclado) para el subproceso de llamada o el proceso actual. El identificador de la configuración regional de entrada especifica una configuración regional y la distribución física del teclado.
BlockInput Impide que los eventos de entrada del teclado y del mouse lleguen a las aplicaciones.
EnableWindow Habilita o deshabilita la entrada del mouse y del teclado en la ventana o control especificados. Cuando la entrada está deshabilitada, la ventana no recibe entradas como clics del mouse y pulsaciones de teclas. Cuando la entrada está habilitada, la ventana recibe toda la entrada.
GetActiveWindow Recupera el identificador de la ventana activa asociada a la cola de mensajes del subproceso de la llamada.
GetAsyncKeyState Determina si una tecla está presionada o no en el momento en el que se llama a la función y si la tecla se ha presionado después de una llamada anterior a GetAsyncKeyState.
GetFocus Recupera el identificador de la ventana que tiene el foco del teclado, si la ventana está asociada a la cola de mensajes del subproceso que realiza la llamada.
GetKeyboardLayout Recupera el identificador de la configuración regional de entrada activo (antes denominado distribución del teclado) para el subproceso especificado. Si el parámetro idThread es cero, se devuelve el identificador de la configuración regional de entrada del subproceso activo.
GetKeyboardLayoutList Recupera los identificadores de configuración regional de entrada (antes denominados identificadores de distribución del teclado) correspondientes al conjunto actual de configuraciones regionales de entrada del sistema. La función copia los identificadores en el búfer especificado.
GetKeyboardLayoutName Recupera el nombre del identificador de la configuración regional de entrada activa (antes denominado distribución del teclado).
GetKeyboardState Copia el estado de las 256 teclas virtuales en el búfer especificado.
GetKeyNameText Recupera una cadena que representa el nombre de una tecla.
GetKeyState Recupera el estado de la tecla virtual especificada. El estado especifica si la tecla está presionada o no, o si es de alternancia (se activa y desactiva cada vez que se presiona la tecla).
GetLastInputInfo Recupera la hora del último evento de entrada.
IsWindowEnabled Determina si la ventana especificada está habilitada para la entrada del mouse y del teclado.
LoadKeyboardLayout Carga en el sistema un nuevo identificador de la configuración regional de entrada (antes denominado distribución de teclado). Se pueden cargar varios identificadores de configuración regional de entrada a la vez, pero solo hay uno activo por proceso cada vez. La carga de varios identificadores de configuración regional de entrada permite cambiar rápidamente entre ellos.
MapVirtualKey Traduce (asigna) un código de tecla virtual a un código de tecla o un valor de carácter, o bien traduce un código de tecla a un código de tecla virtual.
Para especificar un identificador para la distribución del teclado que se va a usar para traducir el código especificado, use la función MapVirtualKeyEx.
MapVirtualKeyEx Asigna un código de tecla virtual a un código de tecla o un valor de carácter, o bien traduce un código de tecla a un código de tecla virtual. La función traduce los códigos usando el idioma de entrada y un identificador de la configuración regional de entrada.
OemKeyScan Asigna códigos OEMASCII de 0 a 0x0FF a los códigos de tecla OEM y los estados de cambio. La función proporciona información que permite a un programa enviar texto OEM a otro programa simulando la entrada del teclado.
RegisterHotKey Define una tecla de acceso rápido para todo el sistema.
SendInput Sintetiza pulsaciones de tecla, movimientos del mouse y clics de botón.
SetActiveWindow Activa una ventana. La ventana debe asociarse a la cola de mensajes del subproceso que llama.
SetFocus Establece el foco del teclado en la ventana especificada. La ventana debe asociarse a la cola de mensajes del subproceso que llama.
SetKeyboardState Copia una matriz de 256 bytes de estados de las teclas del teclado en la tabla de estado de entrada del teclado del subproceso que realiza la llamada. Esta es la misma tabla a la que acceden las funciones GetKeyboardState y GetKeyState. Los cambios realizados en esta tabla no afectan a la entrada del teclado para ningún otro subproceso.
ToAscii Traduce el código de tecla virtual y el estado de teclado especificados al carácter o caracteres correspondientes. La función traduce el código usando el idioma de entrada y la distribución física del teclado identificado por el identificador de distribución de teclado.
Para especificar un identificador de la distribución del teclado que se va a usar para traducir el código especificado, use la función ToAsciiEx.
ToAsciiEx Traduce el código de tecla virtual y el estado de teclado especificados al carácter o caracteres correspondientes. La función traduce el código usando el idioma de entrada y la distribución física del teclado identificado por el identificador de la configuración regional de entrada.
ToUnicode Traduce el código de tecla virtual y el estado del teclado especificados al carácter o caracteres Unicode correspondientes.
Para especificar un identificador para la distribución del teclado que se va a usar para traducir el código especificado, use la función ToUnicodeEx.
ToUnicodeEx Traduce el código de tecla virtual y el estado del teclado especificados al carácter o caracteres Unicode correspondientes.
UnloadKeyboardLayout Descarga un identificador de la configuración regional de entrada (antes denominado distribución del teclado).
UnregisterHotKey Libera una tecla de acceso rápido registrada previamente por el subproceso que realiza la llamada.
VkKeyScanEx Traduce un carácter al código de tecla virtual y el estado de cambio correspondientes. La función traduce el carácter usando el idioma de entrada y la distribución física del teclado identificados por el identificador de la configuración regional de entrada.

Las siguientes funciones están obsoletas.

Función Descripción
GetKBCodePage Recupera la página de códigos actual.
keybd_event Sintetiza una pulsación de tecla. El sistema puede usar este tipo de pulsación de tecla sintetizada para generar un mensaje WM_KEYUP o WM_KEYDOWN. El controlador de interrupción del controlador del teclado llama a la función keybd_event.
VkKeyScan Traduce un carácter al código de tecla virtual y el estado de cambio correspondientes para el teclado actual.

Mensajes

Nombre Descripción
WM_GETHOTKEY Determina la tecla de acceso rápido asociada a la ventana.
WM_SETHOTKEY Asocia una tecla activa a la ventana. Cuando el usuario presiona la tecla de acceso rápido, el sistema activa la ventana.

Notificaciones

Nombre Descripción
WM_ACTIVATE Se envía tanto a la ventana que se va a activar como a la ventana que se va a desactivar. Si las ventanas usan la misma cola de entrada, el mensaje se envía de forma sincrónica, primero al procedimiento de la ventana de nivel superior que se desactiva y, después, al procedimiento de la ventana de nivel superior que se activa. Si las ventanas usan diferentes colas de entrada, el mensaje se envía de forma asincrónica, por lo que la ventana se activa de inmediato.
WM_APPCOMMAND Notifica a una ventana que el usuario ha generado un evento de comando de aplicación, por ejemplo, haciendo clic en un botón de comando de aplicación con el mouse o pulsando una tecla de comando de aplicación en el teclado.
WM_CHAR Se envía a la ventana que tiene el foco del teclado cuando la función TranslateMessage traduce un mensaje WM\_KEYDOWN. El mensaje WM_CHAR contiene el código de carácter de la tecla presionada.
WM_DEADCHAR Se envía a la ventana que tiene el foco del teclado cuando la función TranslateMessage traduce un mensaje WM_KEYUP. WM_DEADCHAR especifica un código de carácter generado por una tecla inactiva. Una tecla inactiva es una tecla que genera un carácter, como la diéresis, que se combina con otro carácter para formar un carácter compuesto. Por ejemplo, el carácter O con diéresis (Ö) se genera escribiendo la tecla inactiva para la diéresis y, después, la tecla O.
WM_HOTKEY Se envía cuando el usuario presiona una tecla de acceso rápido registrada con la función RegisterHotKey. Este mensaje se pone al principio de la cola de mensajes asociada al subproceso que ha registrado la tecla de acceso rápido.
WM_KEYDOWN Se envía a la ventana que tiene el foco del teclado cuando se presiona una tecla que no es del sistema. Una tecla que no es del sistema es una tecla que se presiona cuando no se presiona la tecla ALT.
WM_KEYUP Se envía a la ventana que tiene el foco del teclado cuando se suelta una tecla que no es del sistema. Una tecla que no es del sistema es una tecla que se presiona cuando no está presionada la tecla ALT, o bien una tecla que se presiona cuando una ventana tiene el foco del teclado.
WM_KILLFOCUS Se envía a una ventana inmediatamente antes de que pierda el foco del teclado.
WM_SETFOCUS Se envía a una ventana después de haber obtenido el foco del teclado.
WM_SYSDEADCHAR Se envía a la ventana que tiene el foco de teclado cuando la función TranslateMessage traduce un mensaje WM_SYSKEYDOWN. WM_SYSDEADCHAR especifica el código de carácter de una tecla inactiva del sistema, es decir, una tecla inactiva que se presiona mientras se mantiene presionada la tecla ALT.
WM_SYSKEYDOWN Se envía a la ventana que tiene el foco del teclado cuando el usuario presiona la tecla F10 (que activa la barra de menús) o mantiene presionada la tecla ALT y presiona otra tecla. También se produce cuando no hay actualmente ninguna ventana con el foco del teclado. En este caso, el mensaje WM_SYSKEYDOWN se envía a la ventana activa. La ventana que recibe el mensaje puede distinguir entre estos dos contextos comprobando el código de contexto en el parámetro lParam.
WM_SYSKEYUP Se envía a la ventana que tiene el foco del teclado cuando el usuario suelta una tecla que ha presionado mientras mantenía presionada la tecla ALT. También se produce cuando no hay ninguna ventana actualmente con el foco del teclado. En este caso, el mensaje WM_SYSKEYUP se envía a la ventana activa. La ventana que recibe el mensaje puede distinguir entre estos dos contextos comprobando el código de contexto en el parámetro lParam.
WM_UNICHAR Se envía a la ventana que tiene el foco del teclado cuando la función TranslateMessage traduce un mensaje WM\_KEYDOWN. El mensaje WM_UNICHAR contiene el código de carácter de la tecla que se ha presionado.

Estructuras

Nombre Descripción
HARDWAREINPUT Contiene información acerca de un mensaje simulado generado por un dispositivo de entrada que no es el teclado ni el mouse.
INPUT Contiene información que se usa para sintetizar eventos de entrada, como pulsaciones de tecla, movimiento del mouse y clics del mouse.
KEYBDINPUT Contiene información acerca de un evento de teclado simulado.
LASTINPUTINFO Contiene la hora de la última entrada.
MOUSEINPUT Contiene información acerca de un evento de mouse simulado.

Constantes

Nombre Descripción
Códigos de tecla virtual Nombres de constantes simbólicos, valores hexadecimales y equivalentes del mouse o del teclado para los códigos de tecla virtual que usa el sistema. Los códigos se muestran en orden numérico.

Consulte también