Как глобально изменить язык ввода системы в .net - PullRequest
0 голосов
/ 03 сентября 2011

Я обычно переключаюсь между вводом в qwerty и dvorak, и одно из самых больших неудобств в Windows - то, что хотя есть горячая клавиша для переключения между языками ввода, она только изменяет язык ввода для окна, которое имеет фокус.

Я хотел бы создать скрипт для изменения языка ввода для меня и запустить скрипт при нажатии горячей клавиши. Я экспериментировал с разными способами сделать это. Причина, по которой мне это нужно, заключается в том, что я предпочитаю вводить dvorak все время на работе, но не могу установить системное значение по умолчанию на dvorak, если кому-то еще нужно использовать мою систему. Когда скрипт будет готов, я могу загрузить его для всех, чтобы загрузить и использовать.

Одним из решений, которое я нашел в Интернете, было использование функции SystemParametersInfo. Однако я не мог найти адекватную документацию, чтобы получить это работает из библиотеки MSDN. Я прекратил поиск после прочтения нескольких сообщений других людей, которые не смогли заставить эту функцию работать, некоторые утверждали, что она требует перезагрузки системы.

Редактировать - попытка продолжения не удалась, поскольку кажется, что этот метод работает только для текущего окна (и хотя мне удалось изменить язык ввода, он, похоже, не оказал никакого влияния).

Другое (чуть более многообещающее) решение, которое я нашел, было настройка InputLanguage.CurrentInputLanguage. Однако, опять же, очень мало документации по его использованию для настройки (больше только для получения). Онлайн-руководства, которые я нашел для этого, обсуждались с использованием InputLanguage.FromCulture () для установки языка. то есть InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("ZH-CN")); однако US-Dvorak, похоже, не входит в список поддерживаемых культур.

У кого-нибудь есть идеи? Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2012

Я нашел эту программу: прекрасно работает, и исходный код предоставляется.Я мог бы использовать его в качестве ресурса при попытке разработки других программ для «исправления» ужасной функциональности Windows.

Загрузка: http://www.tomseddon.plus.com/kbswitch/

Если вы используете Windows 7, вы можете перетащить ееиз всплывающего окна в правом нижнем углу экрана, так что значок находится на панели задач, около системного времени.Я не пробовал перезагружаться, я положил программу в папку автозагрузки, поэтому она должна работать.

...