Export (0) Print
Expand All

Keyboard Input

This section describes how the system generates keyboard input and how an application receives and processes that input.

In This Section

NameDescription
About Keyboard Input

Discusses keyboard input.

Using Keyboard Input

Covers tasks that are associated with keyboard input.

Keyboard Input Reference

Contains the API reference.

 

Functions

NameDescription
ActivateKeyboardLayout

Sets the input locale identifier (formerly called the keyboard layout handle) for the calling thread or the current process. The input locale identifier specifies a locale as well as the physical layout of the keyboard.

BlockInput

Blocks keyboard and mouse input events from reaching applications.

EnableWindow

Enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input.

GetActiveWindow

Retrieves the window handle to the active window attached to the calling thread's message queue.

GetAsyncKeyState

Determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState.

GetFocus

Retrieves the handle to the window that has the keyboard focus, if the window is attached to the calling thread's message queue.

GetKeyboardLayout

Retrieves the active input locale identifier (formerly called the keyboard layout) for the specified thread. If the idThread parameter is zero, the input locale identifier for the active thread is returned.

GetKeyboardLayoutList

Retrieves the input locale identifiers (formerly called keyboard layout handles) corresponding to the current set of input locales in the system. The function copies the identifiers to the specified buffer.

GetKeyboardLayoutName

Retrieves the name of the active input locale identifier (formerly called the keyboard layout).

GetKeyboardState

Copies the status of the 256 virtual keys to the specified buffer.

GetKeyNameText

Retrieves a string that represents the name of a key.

GetKeyState

Retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off—alternating each time the key is pressed).

GetLastInputInfo

Retrieves the time of the last input event.

IsWindowEnabled

Determines whether the specified window is enabled for mouse and keyboard input.

LoadKeyboardLayout

Loads a new input locale identifier (formerly called the keyboard layout) into the system. Several input locale identifiers can be loaded at a time, but only one per process is active at a time. Loading multiple input locale identifiers makes it possible to rapidly switch between them.

MapVirtualKey

Translates (maps) a virtual-key code into a scan code or character value, or translates a scan code into a virtual-key code.

To specify a handle to the keyboard layout to use for translating the specified code, use the MapVirtualKeyEx function.

MapVirtualKeyEx

Maps a virtual-key code into a scan code or character value, or translates a scan code into a virtual-key code. The function translates the codes using the input language and an input locale identifier.

OemKeyScan

Maps OEMASCII codes 0 through 0x0FF into the OEM scan codes and shift states. The function provides information that allows a program to send OEM text to another program by simulating keyboard input.

RegisterHotKey

Defines a system-wide hot key.

SendInput

Synthesizes keystrokes, mouse motions, and button clicks.

SetActiveWindow

Activates a window. The window must be attached to the calling thread's message queue.

SetFocus

Sets the keyboard focus to the specified window. The window must be attached to the calling thread's message queue.

SetKeyboardState

Copies a 256-byte array of keyboard key states into the calling thread's keyboard input-state table. This is the same table accessed by the GetKeyboardState and GetKeyState functions. Changes made to this table do not affect keyboard input to any other thread.

ToAscii

Translates the specified virtual-key code and keyboard state to the corresponding character or characters. The function translates the code using the input language and physical keyboard layout identified by the keyboard layout handle.

To specify a handle to the keyboard layout to use to translate the specified code, use the ToAsciiEx function.

ToAsciiEx

Translates the specified virtual-key code and keyboard state to the corresponding character or characters. The function translates the code using the input language and physical keyboard layout identified by the input locale identifier.

ToUnicode

Translates the specified virtual-key code and keyboard state to the corresponding Unicode character or characters.

To specify a handle to the keyboard layout to use to translate the specified code, use the ToUnicodeEx function.

ToUnicodeEx

Translates the specified virtual-key code and keyboard state to the corresponding Unicode character or characters.

UnloadKeyboardLayout

Unloads an input locale identifier (formerly called a keyboard layout).

UnregisterHotKey

Frees a hot key previously registered by the calling thread.

VkKeyScanEx

Translates a character to the corresponding virtual-key code and shift state. The function translates the character using the input language and physical keyboard layout identified by the input locale identifier.

 

The following functions are obsolete.

FunctionDescription
GetKBCodePage

Retrieves the current code page.

keybd_event

Synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.

VkKeyScan

Translates a character to the corresponding virtual-key code and shift state for the current keyboard.

 

Messages

NameDescription
WM_GETHOTKEY

Determines the hot key associated with a window.

WM_SETHOTKEY

Associates a hot key with the window. When the user presses the hot key, the system activates the window.

 

Notifications

NameDescription
WM_ACTIVATE

Sent to both the window being activated and the window being deactivated. If the windows use the same input queue, the message is sent synchronously, first to the window procedure of the top-level window being deactivated, then to the window procedure of the top-level window being activated. If the windows use different input queues, the message is sent asynchronously, so the window is activated immediately.

WM_APPCOMMAND

Notifies a window that the user generated an application command event, for example, by clicking an application command button using the mouse or typing an application command key on the keyboard.

WM_CHAR

Posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_CHAR message contains the character code of the key that was pressed.

WM_DEADCHAR

Posted to the window with the keyboard focus when a WM_KEYUP message is translated by the TranslateMessage function. WM_DEADCHAR specifies a character code generated by a dead key. A dead key is a key that generates a character, such as the umlaut (double-dot), that is combined with another character to form a composite character. For example, the umlaut-O character (Ö) is generated by typing the dead key for the umlaut character, and then typing the O key.

WM_HOTKEY

Posted when the user presses a hot key registered by the RegisterHotKey function. The message is placed at the top of the message queue associated with the thread that registered the hot key.

WM_KEYDOWN

Posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.

WM_KEYUP

Posted to the window with the keyboard focus when a nonsystem key is released. A nonsystem key is a key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when a window has the keyboard focus.

WM_KILLFOCUS

Sent to a window immediately before it loses the keyboard focus.

WM_SETFOCUS

Sent to a window after it has gained the keyboard focus.

WM_SYSDEADCHAR

Sent to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. WM_SYSDEADCHAR specifies the character code of a system dead key — that is, a dead key that is pressed while holding down the ALT key.

WM_SYSKEYDOWN

Posted to the window with the keyboard focus when the user presses the F10 key (which activates the menu bar) or holds down the ALT key and then presses another key. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter.

WM_SYSKEYUP

Posted to the window with the keyboard focus when the user releases a key that was pressed while the ALT key was held down. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYUP message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter.

WM_UNICHAR

Posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_UNICHAR message contains the character code of the key that was pressed.

 

Structures

NameDescription
HARDWAREINPUT

Contains information about a simulated message generated by an input device other than a keyboard or mouse.

INPUT

Contains information used for synthesizing input events such as keystrokes, mouse movement, and mouse clicks.

KEYBDINPUT

Contains information about a simulated keyboard event.

LASTINPUTINFO

Contains the time of the last input.

MOUSEINPUT

Contains information about a simulated mouse event.

 

Constants

NameDescription
Virtual-Key Codes

The symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order.

 

 

 

Community Additions

ADD
Show:
© 2014 Microsoft