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


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

Задает идентификатор входного языкового стандарта (прежнее название — дескриптор раскладки клавиатуры) для вызывающего потока или текущего процесса. Идентификатор входного языкового стандарта указывает языковой стандарт, а также физический макет клавиатуры.

Синтаксис

HKL ActivateKeyboardLayout(
  [in] HKL  hkl,
  [in] UINT Flags
);

Параметры

[in] hkl

Тип: HKL

Входной идентификатор языкового стандарта для активации.

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

Значение Значение
HKL_NEXT
1
Выбирает следующий идентификатор языкового стандарта в циклический список загруженных идентификаторов языкового стандарта, поддерживаемых системой.
HKL_PREV
0
Выбирает предыдущий идентификатор языкового стандарта из циклического списка загруженных идентификаторов языкового стандарта, поддерживаемых системой.

[in] Flags

Тип: UINT

Указывает способ активации идентификатора входного языкового стандарта. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
KLF_REORDER
0x00000008
Если этот бит задан, циклический список системных идентификаторов загруженных языковых стандартов переупорядочен путем перемещения идентификатора языкового стандарта в начало списка. Если этот бит не задан, список поворачивается без изменения порядка.

Например, если у пользователя активный идентификатор языкового стандарта на английском языке, а также загружены идентификаторы языкового стандарта на французском, немецком и испанском языках (в таком порядке), то активация идентификатора немецкого языкового стандарта с помощью набора битов KLF_REORDER приведет к следующему порядку: немецкий, английский, французский, испанский. Активация идентификатора немецкого языкового стандарта без KLF_REORDER битового набора приведет к следующему порядку: немецкий, испанский, английский, французский.

Если загружено менее трех идентификаторов языкового стандарта, значение этого флага не имеет значения.

KLF_RESET
0x40000000
Если задано , но KLF_SHIFTLOCK не задано, состояние CAPS LOCK отключается путем повторного нажатия клавиши CAPS LOCK. Если также задано значение set и KLF_SHIFTLOCK , состояние CAPS LOCK отключается нажатием любой из клавиш SHIFT.

Эти два метода являются взаимоисключающими, и параметр сохраняется как часть профиля пользователя в реестре.

KLF_SETFORPROCESS
0x00000100
Активирует указанный идентификатор языкового стандарта для всего процесса и отправляет сообщение WM_INPUTLANGCHANGE в фокус или активное окно текущего потока.
KLF_SHIFTLOCK
0x00010000
Используется с KLF_RESET. Пояснения см . в разделе KLF_RESET .
KLF_UNLOADPREVIOUS
Этот флаг не поддерживается. Вместо этого используйте функцию UnloadKeyboardLayout .

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

Тип: HKL

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

Чтобы получить расширенные сведения об ошибке, используйте функцию GetLastError .

Комментарии

Эта функция влияет только на макет текущего процесса или потока.

Эта функция не ограничивается раскладками клавиатуры. Параметр hkl фактически является идентификатором входного языкового стандарта. Это более широкое понятие, чем раскладка клавиатуры, так как она также может охватывать преобразователь преобразования речи в текст, редактор метода ввода (IME) или любую другую форму ввода. Несколько входных идентификаторов языкового стандарта можно загрузить в любой момент времени, но за раз активен только один. Загрузка нескольких идентификаторов входных языковых стандартов позволяет быстро переключаться между ними.

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

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

Требования

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

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

Основные понятия

GetKeyboardLayoutName

Ввод с клавиатуры

LoadKeyboardLayout

Справочные материалы

UnloadKeyboardLayout