В своё время столкнулся с неприятной странностью форточек.
Невзирая на то, что обхожу десятой дорогой «зверские сборки», не использую Punto Switcher и прочую нечисть, моя ХРюшка периодически меняла порядок переключения раскладки клавиатуры в языковой панели.
Т. е. было En->Ru->Uk, к примеру, а стало En->Uk->Ru.
Задача — вернуть всё на место и избежать подобного в будущем.
Загвоздка осложнялась тем, что я использую английскую, русскую и украинскую раскладки. С двумя всё несколько проще.
Проблема наблюдалась и была решена на Windows XP (SP 3).
Скриншоты кликабельны
Итак, во-первых, надо убедиться, что в реестре по адресам
HKEY_CURRENT_USERKeyboard LayoutPreload
и
HKEY_USERS.DEFAULTKeyboard LayoutPreload
(Эта ветка отвечает за первичную ракладку клавиатуры при входе в систему, но лучше и здесь поменять)
указана желаемая последовательность:
Где
00000409 — eng
00000419 — рус
00000422 — укр
Полный список соответствий
Во-вторых, необходимо изменить приоритет для раскладок.
Для этого заходим в реестр по адресу
HKEY_LOCAL_MACHINESYSTEMControlSet001ControlNlsLocale
и увеличиваем на единицу значение раскладки, которая должна быть последней в списке (в случае, если их всего три, конечно).
Обычно и для русской (00000419), и для украинской (00000422) раскладок приоритет установлен одинаковым — 5. Значит для того, чтобы последовательность при переключении была En->Ru->Uk, изменяем значение поля 00000422 с «5» на «6».
На всякий случай можно аналогичным образом изменить значения и в этой ветке:
HKEY_LOCAL_MACHINESYSTEMControlSet002ControlNlsLocale
хотя в моём случае этого не потребовалось.
Собственно, эти несложные действия избавили меня от проблем с очерёдностью «переключения языков» при смене раскладки клавиатуры.
ЗЫ
Вдруг кто-то никогда не правил реестр, вот неплохая статья, в которой достаточно подробно всё расписано.
Автор: Kassandr