Поделиться через


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

[Эта функция заменена функцией VkKeyScanEx . Однако вы по-прежнему можете использовать VkKeyScan, если не нужно указывать раскладку клавиатуры.]

Преобразует символ в соответствующий код виртуальной клавиши и состояние сдвига для текущей клавиатуры.

Синтаксис

SHORT VkKeyScanA(
  [in] CHAR ch
);

Параметры

[in] ch

Тип: TCHAR

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

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

Тип: SHORT

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

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

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

Комментарии

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

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

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

Примечание

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

Требования

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

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