Функция ActivateKeyboardLayout 


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

Синтаксис

HKL ActivateKeyboardLayout(
    HKL hkl,
    UINT Flags
);

Параметры

hkl

[in] Идентификатор языка ввода, который активизируется

 Windows 95/98/Me: Этот параметр может быть получен при помощи использования функции LoadKeyboardLayout или GetKeyboardLayoutList или может быть один из ниже перечисленных значений:

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

Флажок Описание
HKL_NEXT
Выбирает следующую идентификатор языка  в кольцевом списке загруженных идентификаторов языка, поддерживаемых системой. 
HKL_PREV Выбирает предыдущий идентификатор языка в кольцевом списке загруженных идентификаторов языка, поддерживаемых системой. 
Flags
[in] Определяет какой идентификатор языка должен быть активизирован. Этот параметр может быть одним из ниже перечисленных значений.

 

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

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

KLF_RESET
Windows 2000/XP: Если он установлен, а KLF_SHIFTLOCK не установлен, режим клавиши Caps Lock выключается, повторным нажатием клавиши Caps Lock. Если он установлен и KLF_SHIFTLOCK также установлен, режим Caps Lock выключается нажатием любой клавиши SHIFT.

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

KLF_SETFORPROCESS
Windows 2000/XP: Активизирует заданный идентификатор национального языка для всего процесса и отправляет сообщение WM_INPUTLANGCHANGE окну с фокусом или активному окну текущего потока.
KLF_SHIFTLOCK
Windows 2000/XP: Этот флажок используется с KLF_RESET. Объяснения см. в  KLF_RESET.
KLF_UNLOADPREVIOUS
Этот флажок не поддерживается. Используйте функцию UnloadKeyboardLayout вместо него. 

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

Windows NT 3.51 и позже: Возвращаемое значение имеет тип BOOL. Если функция завершается успешно, оно - не нуль. Если функция завершается ошибкой, оно равно нулю.

Windows 95/98, Windows NT 4.0 и позже: Возвращаемое значение имеет тип HKL. Если функция завершается успешно, возвращаемое значение - предыдущий идентификатор языка ввода данных. В противном случае, оно равно нулю.

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

Замечания

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

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

Windows 95/98/Me: Приложение может создать правильный идентификатор языка ввода данных при помощи установки старшего слова в нуль, а младшего слова в значение идентификатора языка. Использование такого идентификатора языка ввода данных изменяет язык ввода, не воздействуя на физическую раскладку клавиатуры.

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

Windows 2000/XP: Флажки KLF_RESET и  KLF_SHIFTLOCK изменяют метод, которым выключается режим Caps Lock . По умолчанию, режим Caps Lock выключается повторным нажатием клавиши Caps Lock. Если установлен только KLF_RESET , заданный по умолчанию режим восстанавливается. Если установлены KLF_RESET и KLF_SHIFTLOCK , режим Caps Lock выключается, нажатием любой клавиши SHIFT. Эта особенность используется для стандартизации работы национальной клавиатуры, а так же для персональных настроек.

Смотри также

Обзор Ввод данных с клавиатуры, Функции, используемые клавиатурой, LoadKeyboardLayout, GetKeyboardLayoutName, UnloadKeyboardLayout

Размещение и совместимость ActivateKeyboardLayout

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и старше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz