Как запретить 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. Удалить английский (США) язык.

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


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. Отрегулируйте по мере необходимости.


после выполнения этой команды для меня ничего не изменилось
— 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.