Функция ActivateKeyboardLayout активизирует другую раскладку символов на клавиатуре и устанавливает активную раскладку символов в целом для системы, а не для вызывающего потока.
Синтаксис
BOOL ActivateKeyboardLayout(
HKL hkl, // дескриптор раскладки клавиатуры
UINT Flags // флажки раскладки клавиатуры
);
Параметры
hkl — Идентифицирует раскладку символов на клавиатуре, которая будет активизирована. Раскладка должна быть загружена предыдущим вызовом функции LoadKeyboardLayout. Этот параметр должен быть или дескриптор раскладки символов на клавиатуре или одно из следующих значений:
Flags — Определяет, какая раскладка символов на клавиатуре должна быть активизирована. Этот параметр может быть одним из следующих значений:
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения – ИСТИНА (TRUE).
Если функция не выполняет задачу, величина возвращаемого значения – ЛОЖЬ(FALSE). Чтобы получить расширенные данные об ошибках, вызовите GetLastError.
Замечания
Несколько раскладок символов на клавиатуре могут быть загруженными в любой момент, но в каждый момент времени активной может быть только одна. Загрузка многочисленных раскладок символов на клавиатуре делает возможным быстро переключиться между раскладками.
___________________________________________
Функция LoadKeyboardLayout загружает раскладку символов на клавиатуре.
Синтаксис
HKL LoadKeyboardLayout(
LPCTSTR pwszKLID, // адрес буфера с названием раскладки
UINT Flags // флажки раскладки клавиатуры
);
Параметры
pwszKLID — Указывает на буфер, который определяет название раскладки символов на клавиатуре. Название должно быть получено из шестнадцатеричного значения идентификатора языка, соответствующего раскладке. Например, Американский Английский язык имеет идентификатор языка 0x0409, так что первичная Американская Английского языка раскладка называется “00000409”. Варианты Американской Английского языка раскладки, типа раскладки Дворака, названы “00010409”, “00020409”, и так далее. За списком первичных идентификаторов языка и идентификаторов подмножества языка, которые составляют идентификатор языка, следит макрокоманда MAKELANGID.
Flags — Устанавливает, как раскладка символов на клавиатуре должна быть загружена. Этот параметр может быть одним из следующих значений:
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения – дескриптор раскладки символов на клавиатуре.
Если функция не выполняет задачу, величина возвращаемого значения – ПУСТО (NULL). Чтобы получить расширенные данные об ошибках, вызовите GetLastError.
Замечания
Одновременно могут быть загруженными несколько раскладок символов на клавиатуре, но активной может быть только одна. Загрузка многочисленных раскладок символов на клавиатуре делает возможным быстро переключаться между ними.
Спасибо, полезный материал. Добавил ваш блог в закладки.
Нужна помощь
В MSDN’е написано, что функция ActivateKeyboardLayout возвращает значение HKL, а не BOOL. Кроме того, для LoadKeyboardLayout имеются и другие флаги.
как узнать раскладку клавиатуры в консольном окне, не используя глобального хука?