Узнаём раскладку клавиатуры и язык ввода

Узнать текущую раскладку клавиатуры и язык ввода в программе можно следующими способами.

Раскладка клавиатуры

Первый способ узнать раскладку клавиатуры, состоит в использовании ряда функций WinAPI.

/// Вернёт Id раскладки в виде цифрового кода. /// Например, 1049 (Русская) или 1033 (США) . ///

Приведённый набор функций получает Id раскладки клавиатуры для активного окна (что в ряде случаев критично), но данный способ работоспособен только в среде Windows.

Второй способ использует стандартную .NET оболочку для текущего языка ввода.

В данном варианте вместо Id раскладки выводится её название, которое отображается в соответствующих опциях системных настроек.

Язык ввода

Собственно, во втором способе получения раскладки клавиатуры мы уже работали с объектом InputLanguage, который содержал информацию о текущем языке ввода.

Содержимое класса InputLanguage достаточно подробно описано в документации Microsoft. В рамках статьи мы ограничимся лишь получением буквенного кода языка ввода (например, «ru-RU», «en-US» и т.д.).

Стоит отметить, что класс InputLanguage поддерживается не только в «классическом» .NET Framework, но и в .NET Core (начиная с 3.0) и в .NET 5 RC 2. Что позволяет задействовать способы, основанные на его применении не только в «обычных» Windows программах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *