winuser.h


RegisterHotKey

La función RegisterHotKey define una "hot key" para el hilo actual.

Sintaxis

BOOL RegisterHotKey(
    HWND hWnd,         // ventana que recibe la notificación de hot-key
    int id,            // identificador de la tecla
    UINT fsModifiers,  // banderas de modificador de tecla
    UINT vk            // código de tecla virtual
   );

Parámetros

hWnd: identifica la ventana que recibirá los mensajes WM_HOTKEY generados por la tecla hot key. Si este parámetro es NULL, los mensajes WM_HOTKEY se envían (post) a la cola de mensajes del hilo que llama a la función y deben ser procesados en el bucle de mensajes.

id: especifica el identificador del hot key. Ningún otro hot key en el proceso que llama puede tener el mismo identificador. Una aplicación debe especificar un valor dentro del rango entre 0x0000 a 0xBFFF. Una biblioteca de enlazado dinámico compartida (DLL) debe especificar un valor en el rango entre 0xC000 a 0xFFFF (el rango devuelto por la función GlobalAddAtom). Para evitar conflictos con identificadores de hot-key definidos por otras DLLs compartidas, una DLL debe usar la función GlobalAddAtom para obtener el identificador de hot-key.

fsModifiers: especifica las teclas que deben estar presionadas en combinación con la tecla especificada en el parámetro nVirtKey para que se genere el mensaje WM_HOTKEY. El parámetro fsModifiers puede ser una combinación de los siguientes valores:

Valor Significado
MOD_ALT Cualquier tecla Alt debe estar presionada.
MOD_CONTROL Cualquier tecla Control debe estar presionada.
MOD_SHIFT Cualquier tecla Mayúsculas debe estar presionada.
MOD_WIN Cualquier teclas WINDOWS fue presionada. Estas teclas aparecen sólo en los teclados ergonómicos Microsoft y están etiquetadas con el logo de Microsoft Windows.

vk: especifica el código de tecla virtual de la hot key.

Valor de retorno

Si la función tiene éxito, el valor de retorno es distinto de cero.

Si la función falla, el valor de retorno es cero.

Observaciones

Cuando se presiona una tecla, el sistema busca una coincidencia entre todas las hot keys del hilo. Si se encuentra una coincidencia, el sistema envía (post) un mensaje WM_HOTKEY a la cola de mensajes del hilo que haya registrado la hot key. Este mensaje es enviado (post) al principio de la cola, de modo que es eliminado por la siguiente iteración del bucle de mensajes.

Esta función no puede asociar una hot key con una ventana creada por otro hilo.

RegisterHotKey falla si la combinación de teclas especificada para la hot key ya ha sido registrada por otra hot key.

Si la ventana identificada por el parámetro hWnd ya ha registrado una hot key con el mismo identificador que se ha especificado en el parámetro id, los nuevos valores de los parámetros fsModifiers y vk reemplazarán a los valores especificados previamente para estos parámetros.