Функция VkKeyScanExA (winuser.h)

Преобразует символ в соответствующий код виртуального ключа и состояние сдвига. Функция преобразует символ с помощью языка ввода и физической раскладки клавиатуры, определяемой идентификатором языкового стандарта ввода.

Синтаксис

SHORT VkKeyScanExA(
  [in] CHAR ch,
  [in] HKL  dwhkl
);

Параметры

[in] ch

Тип: TCHAR

Символ, который необходимо преобразовать в код виртуального ключа.

[in] dwhkl

Тип: HKL

Идентификатор входного языкового стандарта, используемый для перевода символа. Этот параметр может быть любым идентификатором входного языкового стандарта, ранее возвращенным функцией LoadKeyboardLayout .

Возвращаемое значение

Тип: SHORT

Если функция выполнена успешно, байт низкого порядка возвращаемого значения содержит код виртуального ключа, а байт высокого порядка — состояние сдвига, которое может быть сочетанием следующих битов флага.

Возвращаемое значение Описание
1
Нажата любая клавиша SHIFT.
2
Нажата либо клавиша CTRL.
4
Нажата либо клавиша ALT.
8
Нажата клавиша Ханкаку
16
Зарезервировано (определяется драйвером раскладки клавиатуры).
32
Зарезервировано (определяется драйвером раскладки клавиатуры).
 

Если функция не находит ключ, который преобразуется в переданный код символов, байты низкого и высокого порядка содержат –1.

Комментарии

Идентификатор языкового стандарта ввода является более широким понятием, чем раскладка клавиатуры, так как он также может охватывать преобразователь речи в текст, метод ввода Редактор (IME) или любую другую форму ввода.

Для раскладок клавиатуры, где в качестве клавиши shift используется правая клавиша ALT (например, французская раскладка клавиатуры), состояние shift представлено значением 6, так как правая клавиша ALT преобразуется внутри в сочетание клавиш CTRL+ALT.

Переводы цифровой клавиатуры (VK_NUMPAD0 по VK_DIVIDE) игнорируются. Эта функция предназначена для преобразования символов в нажатия клавиш только из раздела main клавиатуры. Например, символ "7" преобразуется в VK_7, а не в VK_NUMPAD7.

VkKeyScanEx используется приложениями, которые отправляют символы с помощью WM_KEYUP и WM_KEYDOWN сообщений.

Примечание

Заголовок winuser.h определяет VkKeyScanEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел