http://habrahabr.ru/post/233665/
Как известно, после одного из обновлений в Windows 7 исчезла возможность переключить раскладку с русской на английскую нажатием комбинации RAlt+Shift. Ситуация осложняется тем, что в обратную сторону оба альта по-прежнему работают, из-за чего некоторые (к примеру, я) очень долго не понимали, почему иногда раскладка перестает переключаться.
Наверное, ситуацию может исправить Punto Switcher. Возможно, есть еще 20 программ, которые может использовать человек, привыкший переключать раскладку только правой рукой, и не желающий переучиваться по велению Microsoft. Но ставить на каждый компьютер, домашний, рабочий, а также всем знакомым, новую программу — не самый удобный способ.
Поэтому я решил поделиться решением, использующим только реестр, раз не смог найти аналогичного в интернете.
Решение я предлагаю простое — перемапить правый альт на левый. Теперь windows будет думать, что на клавиатуре находятся два левых альта — и ни одного правого. Это можно сделать при помощи значения
Scancode Map
в ключе реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
Тут есть одна сложность: формат бинарный, и без редактора может обойтись разве что человек, которому совсем нечего делать. Для редактирования я взял программу
SharpKeys. Но, поскольку я обещал, что решение будет использовать только реестр без посторонних программ, результатом работы этой программы я сейчас и поделюсь.
Решение.
Вот решение для простой замены правого альта на левый. Не буду писать, что означает написанное ниже, потому что этот пост не является учебником по работе с реестром.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,38,00,38,e0,00,00,00,00
У этого решения есть один недостаток: раньше правый альт работал как модификатор AltGr, и кто-то им мог пользоваться. Если вы использовали AltGr по его прямому назначению достаточно редко — то можно в дальнейшем нажимать Alt+Control для достижения той же цели. Но если хочется AltGr одной кнопкой — то надо найти какую-нибудь другую ненужную кнопку, которой можно пожертвовать. Тут я предлагаю еще два варианта.
Вариант второй — заставить работать левый альт как правый (да, это нарушит переключение раскладки левой рукой).
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,38,e0,38,00,38,00,38,e0,00,00,00,00
Вариант третий — заставить работать правый WinKey как правый альт.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,38,e0,5c,e0,38,00,38,e0,00,00,00,00