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

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


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

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

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

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

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

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

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

  • Мне уже удалось удалить это с помощью какой-то гимнастики настройки языка, добавляя и удаляя языки, это всегда в конечном итоге возвращается
  • Я уже сделал это: /questions/712640/kak-udalit-avtomaticheski-dobavlennyie-raskladki-klaviaturyi/712650#712650
  • Там нет упоминания US Keyboard в моих настройках реестра:

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

12 ответов

Решение

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

HKEY_USERS\.DEFAULT\Keyboard Layout\Preload

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

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

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

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

Windows Registry Editor Version 5.00

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

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

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

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

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

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

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

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

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

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

Панель управленияРегионАдминистративная вкладка → Копировать настройки...


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

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

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

Это не постоянное исправление, а удобный пакетный файл, который добавляет 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).

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

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

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

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

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

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

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

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

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

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

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

Ответ Микеля выше исправляет это.... но на тот случай, если это появится у вас (как и у меня): возможно, у вас есть собственный ярлык 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. Панель управления
  2. Часы, язык и регион
  3. язык
  4. Изменить методы ввода
  5. Расширенные настройки
  6. Переопределить для метода ввода по умолчанию
  7. Выберите предпочитаемый макет (вместо "Использовать список языков")
  8. Сохранить

На самом деле кажется, что проблема также с тем же ключом под вашим реальным профилем пользователя (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,

Это меня тоже сводит с ума, особенно каждый раз после перезагрузки ноутбука.

Вот один совет, который я нашел, надеюсь, он также поможет каждому из вас:

Во-первых, убедитесь, что новая случайная клавиатура удалена. Если она не найдена в списке клавиатур, сначала добавьте клавиатуру, а затем удалите ее.

ОткрытьSettings, затем в строке поиска введите «ввод», затем нажмите «Дополнительные настройки клавиатуры», затем снимите флажок «Разрешить мне установить другой метод ввода для каждого окна приложения». Перезапустите, чтобы пройти тест.

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

Еще одна подсказка, которую я заметил, которая мне помогла: @login screen У меня было только два макета, и только через некоторое время после входа в систему появились два других бесполезных макета. После этого исключение всех элементов автоматического входа в систему и их запуск вручную позволили легко найти одно приложение, которое добавило эти дополнительные макеты.

Другие вопросы по тегам