Состояния клавиши
В ходе обработки сообщения клавиатуры, у прикладной программы может возникнуть необходимость установить состояние другой клавиши кроме той, для которой сгенерировано текущее сообщение. Например, прикладная программа обработки текстов (текстовый процессор), которая дает возможность пользователю нажимать
SHIFT+END, чтобы выбрать блок текста, должна проверять состояние клавиши SHIFT всякий раз, когда она принимает сообщение о нажатии от клавиши END. Прикладная программа может использовать функцию GetKeyState, чтобы установить состояние виртуальной клавиши во время создания текущего сообщения; она может использовать функцию GetAsyncKeyState, чтобы получить данные о текущем состоянии виртуальной клавиши.Раскладка символов на клавиатуре сохраняет список названий. Название клавиши, которая создает отдельный символ то же самое, что и символ, созданный клавишей. Название не символьной клавиши типа TAB и ENTER сохраняется как строка символов. Прикладная программа может извлекать данные о названии любой клавиши из драйвера устройства путем вызова функции GetKeyNameText.