Переключение раскладки клавиатуры windows server 2008

После ввода в эксплуатацию терминального сервера под управлением, прости господи, Windows Server 2008 R2, обнаружилась следующая проблема: периодически у подключающихся по протоколу RDP (удаленный рабочий стол) пользователей перестает переключаться раскладка клавиатуры. В системном трее язык переключается как обычно (к примеру, с RU на EN), но при этом ввод продолжает оставаться в раскладке RU, а рядом со значком EN появляется значок в форме клавиатуры, кликнув на который мышью можно уже вручную в появившемся контекстном меню изменить язык ввода – и вот тогда он действительно заменится на выбранный.

Подобное непотребство происходит в том случае, если в момент подключения у клиента и сервера различаются текущие раскладки клавиатуры. Если в момент входа языки выбраны одинаково, то описанная проблема не возникает.

Есть и решение – можно заставить сервер игнорировать раскладку клавиатуры, с которой производилось клиентское подключение. К сожалению, разработчики из Microsoft не удосужились добавить графический интерфейс для этой опции, поэтому потребуется вносить изменения в реестр вручную.

  1. Открываем редактор реестра (regedit.exe);
  2. Открываем ключ HKLM\System\CurrentControlSet\Control\Keyboard Layout;
  3. Создаем параметр IgnoreRemoteKeyboardLayout (REG_DWORD) и присваиваем ему значение “1”;
  4. Перезагружаем сервер.

Теперь язык ввода всегда должен переключаться по комбинации заданной комбинации клавиш, без необходимости клацания мышью.

PS: Описанное актуально для английской версии WinServ2008R2 + русскоязычного MUI; возможно, для других комбинаций языков поведение этой чудо-системы отличается.

This entry was posted in Софт and tagged windows, грабли. Bookmark the permalink.

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .

Создание микросервисов с Domain-Driven Design

ArchitectMsa 04.05.2025

Архитектура микросервисов за последние годы превратилась в мощный архитектурный подход, который позволяет разрабатывать гибкие, масштабируемые и устойчивые системы. А если добавить сюда ещё и. . .

Многопоточность в C++: Современные техники C++26

bytestream 04.05.2025

C++ долго жил по принципу «один поток — одна задача» — как старательный солдатик, выполняющий команды одну за другой. В то время, когда процессоры уже обзавелись несколькими ядрами, этот подход стал. . .

Проблема:

Имеется сервер Microsoft Windows Server 2008 R2 Rus SP1, к которому подключаемся по RDP (удаленный рабочий стол) с клиентского компьютера, на котором установлена Microsoft Windows XP SP3 Rus.

Рядом с иконкой языка (RU или EN) на панели задач появляется иконка с изображением клавиатуры (то есть рядом с обозначением языка ввода появляется обозначение раскладки клавиатуры, и при этом можно при включенном русском языке ввода печатать в английской раскладке при английском языке — в русской раскладке, короче, вот такой бред):

01.JPG

01.JPG (4.22 КБ) 11884 просмотра

При этом, чтобы РЕАЛЬНО переключить язык, приходится по нескольку раз давить клавиши переключение (Alt + Shift), и то результат не гарантирован. Иконка RU меняется на EN, но при этом все равно продолжают вводиться русские символы.

Решение:

Корень зла — в проблеме с совместимостью RDP-клиентов Windows XP и Windows Server 2008 R2. Решается данная проблема внесением параметра «IgnoreRemoteKeyboardLayout» типа REG_DWORD (32bit) в системный реестр терминального сервера по адресу: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout:

Код: Выделить всё

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

При работе на сервере для переключения языка с ENG на РУС необходимо вводить 2 комбинации клавиш. Сначала ALT+L.Shift, а после CTRL+L.Shift. Как отключить эту опцию, чтобы язык переключался только посредством ALT+L.Shift?


  • Вопрос задан

  • 1986 просмотров

В настройках есть отдельно «смена языка» и «смена раскладки». Подразумевается, что может быть несколько разных раскладок для одного языка (ну там помимо стандартной какой-нибудь DVORAK и т.п.), но вот с незапамятных времён зачем-то эта «смена раскладки» по умолчанию назначена на клавишную комбинацию (Ctrl+Shift). Ставьте настройку «смена раскладки» — «не назначено».

Пригласить эксперта

Войдите, чтобы написать ответ


  • Показать ещё
    Загружается…

Минуточку внимания

В Windows Server при подключении к нему по rdp наблюдается такое явление, как две языковые панели у терминального пользователя. Одна с текстовым индикатором (RU|EN), вторая — с изображением клавиатуры. И при нажатии Alt-Shift или Ctrl-Shift (как у кого настроено) язык ввода не переключается.

Есть несколько способов решения данной проблемы:

Вариант 1.

Завершить сеанс на сервере, закрыть rdp-клиент на локальной машине. Заново подключится. Иногда помогает и если такой вариант устраивает, то можно больше ничего не делать.

Вариант 2.

1. Заходим — пуск — панель управления — язык и региональные стандарты.
2. Вкладка «Языки и клавиатуры» — жмем кнопку — Изменить клавиатуру…
3. На вкладке «Общее» — Ставим язык ввода по умолчанию — английский, далее удаляем русский язык, жмем применить, ок.
4. Проделываем пункт 2 еще раз.
5. На вкладке «Общее» добавляем русский язык (англ. так и оставляем стоять по умолчанию)
6. На вкладке «Языковая панель» должна стоять галочка «Отображать текстовые метки на языковой панели», если не стоит — ставим.
7. На вкладке «Переключение клавиатуры», жмем «Сменить сочетание клавиш» 
8. В графе «Смена языка ввода», ставим переключение клавиатуры как нам надо. В графе «Смена раскладки клавиатуры» ставим — не назначено. Жмем «ОК» — «Применить» — «ОК» — «ОК»
9. Перегружаемся.

Помогает в 90%.

Вариант 3.

На терминальном сервере от имени администратора внести изменения в реестр в ветке

HKLM\System\CurrentControlSet\Control\Keyboard Layout:

создать параметр IgnoreRemoteKeyboardLayout типа REG_DWORD(32bit) и установить значение 1.

Либо создать файл time.reg с таким содержанием

Windows Registry Editor Version 5.00

[HKLM\System\CurrentControlSet\Control\Keyboard Layout]
«IgnoreRemoteKeyboardLayout»=dword:00000001

И исполнить его.

Перезагрузка.
Помогает в 100% случаях.

Предупреждение. Неправильное изменение параметров системного реестра с помощью редактора реестра или любым иным способом может привести к серьезным неполадкам. Для их устранения может потребоваться переустановка операционной системы. Корпорация Майкрософт не гарантирует, что эти неполадки можно будет устранить. Ответственность за изменение реестра несет пользователь.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Яркость windows 10 mobile
  • Меню пуск для windows 10 как открыть
  • Что делать если ssd диск не виден в windows 10
  • Пропадает звук на компьютере windows 10 после сна
  • Install directx 10 on windows 10