После ввода в эксплуатацию терминального сервера под управлением, прости господи, Windows Server 2008 R2, обнаружилась следующая проблема: периодически у подключающихся по протоколу RDP (удаленный рабочий стол) пользователей перестает переключаться раскладка клавиатуры. В системном трее язык переключается как обычно (к примеру, с RU на EN), но при этом ввод продолжает оставаться в раскладке RU, а рядом со значком EN появляется значок в форме клавиатуры, кликнув на который мышью можно уже вручную в появившемся контекстном меню изменить язык ввода – и вот тогда он действительно заменится на выбранный.
Подобное непотребство происходит в том случае, если в момент подключения у клиента и сервера различаются текущие раскладки клавиатуры. Если в момент входа языки выбраны одинаково, то описанная проблема не возникает.
Есть и решение – можно заставить сервер игнорировать раскладку клавиатуры, с которой производилось клиентское подключение. К сожалению, разработчики из Microsoft не удосужились добавить графический интерфейс для этой опции, поэтому потребуется вносить изменения в реестр вручную.
- Открываем редактор реестра (regedit.exe);
- Открываем ключ HKLM\System\CurrentControlSet\Control\Keyboard Layout;
- Создаем параметр IgnoreRemoteKeyboardLayout (REG_DWORD) и присваиваем ему значение “1”;
- Перезагружаем сервер.
Теперь язык ввода всегда должен переключаться по комбинации заданной комбинации клавиш, без необходимости клацания мышью.
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 (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% случаях.
Предупреждение. Неправильное изменение параметров системного реестра с помощью редактора реестра или любым иным способом может привести к серьезным неполадкам. Для их устранения может потребоваться переустановка операционной системы. Корпорация Майкрософт не гарантирует, что эти неполадки можно будет устранить. Ответственность за изменение реестра несет пользователь.