Как запретить Windows 10 автоматически добавлять раскладки клавиатуры (например, клавиатура США)

110

Обновление: это длинный пост, вы можете сразу перейти к ответу ниже


Примечание . Быстрый список языков относится к списку на снимке экрана ниже, доступному через ярлык Win + Пробел

У меня есть два языка для проверки орфографии в моей системе: английский (США) и французский (Швейцария) , но, несмотря на то, что оба языка правильно настроены с помощью клавиатуры «Швейцарский французский», ввод с клавиатуры США продолжает появляться в этом списке:

введите описание изображения здесь

Вот настройки для английского (США) языка, вы можете видеть только ввод "Swiss French":

введите описание изображения здесь

То же самое для Français (Suisse) , единственный ввод - «швейцарский французский»:

введите описание изображения здесь

На панели управления оба также установлены как швейцарский французский:

введите описание изображения здесь

Все мои настройки настроены на использование «списка языков»:

введите описание изображения здесь введите описание изображения здесь

Вот несколько вещей, которые я уже попробовал:

  • Мне уже удалось удалить это с помощью какой-то гимнастики настройки языка, добавляя и удаляя языки, это всегда в конечном итоге возвращается
  • Я уже сделал это: https://superuser.com/a/484595/168632
  • Там нет упоминания US Keyboard в моих настройках реестра:

введите описание изображения здесь

Пожалуйста, помогите, я в отчаянии, это мой третий компьютер с Windows 10, и все они делают то же самое.

Луис Феррао
источник
Что если вам понадобится какой-нибудь скрипт, который будет запускаться при автозапуске + УДАЛИТЬ ЭТИ Нежелательные записи?
Сергей Ларин
Win + Shift + пробел
SmartManoj
Только это работало для меня answers.microsoft.com/en-us/windows/forum/... И это также блоков от добавления новых макетов , если вы не позволите ему
rofrol

Ответы:

98

Чтобы устранить эту проблему, удалите Preload папку реестра и выйти или перезагрузить компьютер:

HKEY_USERS\.DEFAULT\Keyboard Layout\Preload

Эта папка, кажется, является некоторым устаревшим остатком, который содержит неуказанные пользователем раскладки клавиатуры, которые будут добавлены в список языков при входе пользователя. Хотя само исправление работает через перезапуски, во время написания есть вещи, которые возвращают это противное. Папка , вот несколько, которые я столкнулся лично:

  • Удаленный рабочий стол к компьютеру с американским макетом
  • Использование той же учетной записи Microsoft на другом ПК, который все еще имеет эту проблему

Всякий раз, когда проблема возвращается, эту папку реестра необходимо удалить снова.

Изменить 2: Благодаря предложению @ Lu55, вот удобная однострочная строка для использования в командной строке с правами администратора:

reg delete "HKEY_USERS\.DEFAULT\Keyboard Layout\Preload" /f

Изменить: я создал RemovePreload.regтекстовый файл со следующим содержимым, таким образом, это исправление может быть легко применено каждый раз без навигации по реестру:

Windows Registry Editor Version 5.00

[-HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]

Чтобы использовать это, сохраните его в текстовом файле и измените расширение с .txtна .reg. Затем, когда он вернется, вы можете просто дважды щелкнуть по нему и перезапустить или выйти.

Луис Феррао
источник
1
Спасибо! Это было единственное, что окончательно исправило это для меня. Раскладка клавиатуры США всегда добавлялась при входе в систему. Я мог удалить ее, сначала добавив ее, а затем удалив, как в ответе Снейпера, но она всегда будет появляться при перезапуске. Это, кажется, навсегда удалило его.
Странник
3
Это все равно появляется через некоторое время.
troorl
Да, теперь он снова появился для меня :( Мне удалось перезапустить только один раз без повторного появления, кажется.
Странник,
1
Решение по добавлению и удалению клавиатуры намного безопаснее и хакерски, как это :)
user2158153
Вы пытались вместо удаления Preloadключа удалить его записи и ограничить права доступа к ключу? Я перешел к разрешениям « PreloadДополнительно», отключил наследование, преобразовал все унаследованные разрешения, удалил их все, добавил разрешение «только для чтения» Everyoneи сохранил. Это должно препятствовать тому, чтобы Windows повторно добавила записи, которые повторно добавляют профили клавиатуры.
Берс
58

На самом деле, решение довольно простое и не требует редактирования реестра!

  • Перейдите в раздел « Регион и язык» (ранее назывались «Языковые настройки») , нажмите « Английский (США)» и перейдите к « Параметры» .

  • Если вы видите «Клавиатуру США» там, удалите ее , и все готово.

  • ОДНАКО , если вы его там не видите, нажмите « Добавить клавиатуру» , добавьте «Клавиатура США», затем удалите эту клавиатуру, и все готово.

Я понял это после проб и ошибок, пробуя разные вещи, у меня была та же проблема.

Снайпер
источник
18
Появляется после перезагрузки снова.
troorl
6
Третий пункт буквально: «Вы пытались включить и выключить его снова?» ... и это было на месте :) Спасибо за это!
ccjmne
3
Не работает после перезагрузки, я проверил это, прежде чем придумать решение выше
Луис Феррао
1
Да, не работает после перезагрузки или после гибернации компьютера.
Озан Курт
2
После обновления Windows 10 от июня 2018 года параметр «Удалить» для английского языка США отключен. (Grr.)
ms609
6

Это не постоянное исправление, а удобный пакетный файл, который добавляет en-USраскладку клавиатуры и затем удаляет ее. (Вы должны сначала добавить его, чтобы иметь возможность удалить его.)

Remove_en-US.xml:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">

    <!--User List-->
    <gs:UserList>
        <gs:User UserID="Current"/>
    </gs:UserList>

    <!--input preferences--> 
    <gs:InputPreferences>
        <!--add en-US keyboard input-->
        <gs:InputLanguageID Action="add" ID="0409:00000409"/>
        <!--remove en-US keyboard input-->
        <gs:InputLanguageID Action="remove" ID="0409:00000409"/>
    </gs:InputPreferences>

</gs:GlobalizationServices>

Remove_en-US.bat:

control intl.cpl,, /f:"%CD%\Remove_en-US.xml"

Тогда вы можете просто запустить, Remove_en-US.batчтобы удалить макет. У меня есть ярлык для этого командного файла в моих программах запуска.

Здесь 0409есть locale IDи 00000409это значение раскладки клавиатуры. Список locale ID:keyboard layout valueсм. На странице https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh825682(v=win.10) .

юн
источник
6

Я нашел ответ через час для сборки:

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.18362 N/A Build 18362
  1. Это будет работать даже после перезапуска.
  2. Это легко сделать. И настроил насовсем.
  3. Это остановит создание любых других языков для новых пользователей.
  4. Эти языки больше не будут отображаться на экране входа в систему.
  5. Нет взлома реестра, который не работал для меня после перезапуска.

Вы также можете пройти через ( но сначала проверьте настройки языка - см. Скриншоты ниже ).

Панель управленияРегионAdministrativeвкладка →Copy settings...


Вот шаг в изображениях с обозначениями в изображениях также для справки.

как

Тогда ваш реестр должен выглядеть так, только с одной предварительной загрузкой.

Скопируйте это Computer\HKEY_USERS\.DEFAULT\Keyboard Layout\Preloadв адресную строку редактора реестра, чтобы перейти прямо к нему, чтобы проверить себя.

одна предварительная нагрузка

Стивен Шерри
источник
4

Theres есть два места для конфигурации клавиатуры в Windows 10, панель управления -> Язык

Другой в настройке, как ваш скриншот

Вносит изменения и там, это должно исправить проблему.

введите описание изображения здесь

отметка
источник
К сожалению, это не так, я добавил скриншот этого экрана на моем компьютере, он правильно настроен на «швейцарский французский» точно так же, как и в новом пользовательском интерфейсе
Луис Феррао
4

У меня не было 409 записей в реестре (см. Принятый ответ). Шаги, которые я предпринял, чтобы удалить английский (США) из меню быстрого выбора:

  1. Откройте «Языковые настройки» в меню быстрого выбора.
  2. Добавить английский (США) язык.
  3. Удалить английский (США) язык.

Совет: В Панели управления \ Все элементы панели управления \ Язык \ Расширенные настройки -> Изменить горячие клавиши языковой панели вы можете установить действие горячих клавиш для «Между языками ввода» на «(Нет)», чтобы избежать случайного переключения раскладки клавиатуры.

PatrykM
источник
2
Я думаю, что ваш ответ не соответствует смыслу этого вопроса. Проблема не в том, чтобы удалить американский английский язык, который я набираю и который мне определенно нужен в моем списке языков, а в том, чтобы удалить несуществующую раскладку «Клавиатура США», которая не соответствует моей собственной раскладке клавиатуры, и которая появляется время от времени как дополнительный «язык» в списке языков. Есть много тем, касающихся удаления самого английского языка США, но этот не является одним из них. Я также не хочу удалять список языков, я использую его для быстрого переключения между языками все время (для проверки орфографии в Windows).
Луис Феррао
2
  1. Панель управления
  2. Часы, язык и регион
  3. язык
  4. Изменить методы ввода
  5. Расширенные настройки
  6. Переопределить для метода ввода по умолчанию
  7. Выберите предпочитаемый макет (вместо «Использовать список языков»)
  8. Сохранить

Скриншот настроек ввода -> Расширенные настройки

Мэтт.
источник
«Язык» теперь отсутствует в последних обновлениях win10.
платиновая
2

Ответ Микеля выше исправляет это .... но на тот случай, если это появится у вас (как и у меня): возможно, у вас есть собственный ярлык AutoHotkey для изменения раскладки клавиатуры?

Проблема заключалась в том, что мой скрипт AutoHotkey содержал следующие строки кода:

; This should be replaced by whatever your native language is. See 
; http://msdn.microsoft.com/en-us/library/dd318693%28v=vs.85%29.aspx
; for the language identifiers list.
el := DllCall("LoadKeyboardLayout", "Str", "00000408", "Int", 1)
en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1

Таким образом, хотя на моем рабочем столе это будет работать прекрасно и переключится с английского (раскладка клавиатуры в Великобритании) на греческий (раскладка клавиатуры GR) и наоборот, на моем ноутбуке с клавиатурой в США этот скрипт будет отвечать за дополнительные раскладки, появляющиеся из синий на моем переключателе языка.

Надеюсь, это поможет!

Ангелос
источник
1

В юбилейном выпуске Windows 10 содержится новая «функция», в которой предполагается, что региональные и языковые настройки имеют обязательную раскладку клавиатуры. Эти макеты не могут быть удалены через графический интерфейс настроек.

Но я смог преодолеть это с помощью PowerShell с помощью такого скрипта:

$1=New-WinUserLanguageList en-US
$1.Add("nl-NL")
$1.Add("de-DE")
Set-WinUserLanguageList $1

Скопируйте и вставьте его в окно PowerShell.

Демонстрация выше настраивает макет США по умолчанию с дополнительными макетами NL и BE. Отрегулируйте по мере необходимости.

rustyx
источник
после выполнения этой команды для меня ничего не изменилось
Lu55
0

На самом деле кажется, что проблема связана с тем же ключом в вашем профиле пользователя ( HKEY_USERS\S-1-5-21-...\Keyboard Layout\Preload), а не только HKEY_USERS\.DEFAULT\Keyboard Layout\Preload.

Я могу повторить это довольно последовательно - когда я добавляю, например, ключ 00000429 (персидский) туда и перезагружаюсь, я автоматически добавляю персидскую клавиатуру, и когда я удаляю ее и перезагружаю, перс больше не существует.

В общем, вы можете убедиться, что у вас нет нежелательных языков ни в, HKEY_USERS\.DEFAULT\Keyboard Layout\Preloadни в HKEY_USERS\S-1-5-21-...\Keyboard Layout\Preload.

юн
источник