Как запретить 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
- Это будет работать даже после перезапуска.
- Это легко сделать. И настроил насовсем.
- Это остановит создание любых других языков для новых пользователей.
- Эти языки больше не будут отображаться на экране входа в систему.
- Нет взлома реестра, который не работал для меня после перезапуска.
Вы также можете пройти через (но сначала проверьте настройки языка - см. Скриншоты ниже).
Панель управления → Регион → Административная вкладка → Копировать настройки...
Вот шаг в изображениях с обозначениями в изображениях также для справки.
Тогда ваш реестр должен выглядеть так, только с одной предварительной загрузкой.
Скопируйте это 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 записей в реестре (см. Принятый ответ). Шаги, которые я предпринял, чтобы удалить английский (США) из меню быстрого выбора:
- Откройте "Языковые настройки" в меню быстрого выбора.
- Добавить английский (США) язык.
- Удалить английский (США) язык.
Совет: В Панели управления \ Все элементы панели управления \ Язык \ Расширенные настройки -> Изменить горячие клавиши языковой панели вы можете установить действие горячей клавиши для "Между языками ввода" на "(Нет)", чтобы избежать случайного переключения раскладки клавиатуры.
В юбилейном выпуске 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) и наоборот, на моем ноутбуке с клавиатурой в США этот скрипт будет отвечать за дополнительные раскладки, появляющиеся из синий на моем переключателе языка.
Надеюсь, это поможет!
- Панель управления
- Часы, язык и регион
- язык
- Изменить методы ввода
- Расширенные настройки
- Переопределить для метода ввода по умолчанию
- Выберите предпочитаемый макет (вместо "Использовать список языков")
- Сохранить
На самом деле кажется, что проблема также с тем же ключом под вашим реальным профилем пользователя (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 У меня было только два макета, и только через некоторое время после входа в систему появились два других бесполезных макета. После этого исключение всех элементов автоматического входа в систему и их запуск вручную позволили легко найти одно приложение, которое добавило эти дополнительные макеты.