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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de