Как изменить раскладку клавиатуры в приложении на .Net C#

Сколько раз вы матерились про себя, начав набирать пароль на русском или русский текст на английском? Переключение раскладки в Windows не очень удобно и почти никто не пытается исправить это неудобство в своей программе. Хотя делается это очень просто. Не буду касаться тонкостей определения установленных в системе раскладок, возьму самый простой случай с русским компьютером и русско-английской раскладкой.

Установить русскую раскладку можно используя классы InputLanguage и CultureInfo:

 InputLanguage.CurrentInputLanguage =  InputLanguage.FromCulture(new System.Globalization.CultureInfo("ru-RU")); 

для американского варианта английского языка

 InputLanguage.CurrentInputLanguage =  InputLanguage.FromCulture(new System.Globalization.CultureInfo("en-US")); 

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


Комментарии

Как изменить раскладку клавиатуры в приложении на .Net C# — Комментарии (4)

  1. Знает ли кто, как можно отловить глобальное изменение языка в сис-ме, вне зависимости от потока? Т.е. как неактивное приложение может отловить изменения раскладки клавиатуры? Т.е. по сути нужно отлавливать изменение языка ru|en в таскбаре.
    Уже вторые сутки бьюсь. Уж думаю, не декомпильнуть ли эту тулзу и глянуть, что и как она слушает.

Добавить комментарий для Ведомир Отменить ответ

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


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>