Jak uniemożliwić systemowi Windows 10 automatyczne dodawanie układów klawiatury (np. Klawiatura amerykańska)

109

Aktualizacja: jest to długi post, możesz przejść od razu do odpowiedzi poniżej


Uwaga: szybka lista języków odnosi się do listy na poniższym zrzucie ekranu, dostępnej poprzez skrót Win + spacja

Mam dwa języki do sprawdzania pisowni w systemie Windows, angielski (Stany Zjednoczone) i francuski (Szwajcaria) , ale pomimo tego, że oba języki są poprawnie skonfigurowane z klawiaturą wejściową „szwajcarski francuski”, klawiatura amerykańska wciąż pojawia się na tej liście:

wprowadź opis zdjęcia tutaj

Oto ustawienia dla języka angielskiego (Stany Zjednoczone) , możesz zobaczyć, że jedynym wprowadzeniem jest „szwajcarski francuski”:

wprowadź opis zdjęcia tutaj

To samo dotyczy Français (Suisse) , jedyne dane wejściowe to „szwajcarski francuski”:

wprowadź opis zdjęcia tutaj

W Panelu sterowania oba są również ustawione jako szwajcarski francuski:

wprowadź opis zdjęcia tutaj

Wszystkie moje ustawienia są ustawione na używanie „listy języków”:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Oto kilka rzeczy, które już wypróbowałem:

  • Już udało mi się go usunąć za pomocą gimnastyki konfiguracji języka, dodając i usuwając języki, zawsze w końcu wraca
  • Zrobiłem już to: https://superuser.com/a/484595/168632
  • W ustawieniach rejestru nie ma wzmianki o klawiaturze US:

wprowadź opis zdjęcia tutaj

Proszę o pomoc, jestem zdesperowany, to mój trzeci komputer z systemem Windows 10 i wszyscy robią to samo.

Luis Ferrao
źródło
co jeśli potrzebujesz jakiegoś skryptu, który działałby przy Autostart + USUŃ TE NIEPOŻĄDANE WPISY?
Sergey Larin,
Win + Shift + Spacja
SmartManoj
Tylko to zadziałało dla mnie answer.microsoft.com/en-us/windows/forum/… I to również blokuje dodawanie nowych układów, chyba że na to
pozwalasz

Odpowiedzi:

98

Aby rozwiązać ten problem, usuń folder rejestru Wstępne ładowanie i wyloguj się lub ponownie uruchom komputer:

HKEY_USERS\.DEFAULT\Keyboard Layout\Preload

Wydaje się, że ten folder jest pozostałością, która zawiera układy klawiatury nieokreślone przez użytkownika, które mają zostać dodane do listy języków, gdy użytkownik się zaloguje. Podczas gdy sama poprawka działa przez ponowne uruchomienie, w chwili pisania tego tekstu są rzeczy, które przywracają to nieznośne folder , oto kilka, na które wpadłem osobiście:

  • Zdalny pulpit do komputera w układzie amerykańskim
  • Używanie tego samego konta Microsoft na innym komputerze, na którym nadal występuje ten problem

Za każdym razem, gdy problem powraca, ten folder rejestru musi zostać ponownie usunięty.

Edycja 2: Dzięki sugestii @ Lu55, oto przydatny jeden wiersz do użycia w wierszu polecenia z uprawnieniami administratora:

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

Edycja: Utworzyłem RemovePreload.regplik tekstowy o następującej treści, w ten sposób można łatwo ponownie zastosować tę poprawkę za każdym razem, bez nawigowania w rejestrze:

Windows Registry Editor Version 5.00

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

Aby tego użyć, zapisz go w pliku tekstowym i zmień rozszerzenie z .txtna .reg. Następnie, gdy wróci, możesz po prostu kliknąć dwukrotnie i uruchomić ponownie lub wylogować.

Luis Ferrao
źródło
1
Dzięki! To była jedyna rzecz, która w końcu to naprawiła. Układ klawiatury w USA zawsze był dodawany po zalogowaniu. Mógłbym go usunąć, najpierw dodając, a następnie usuwając, podobnie jak odpowiedź Snaipera, ale zawsze pojawiałby się ponownie podczas ponownego uruchamiania. Wydaje się, że usunęło to na stałe.
Oddler
3
W każdym razie pojawia się po chwili.
troorl
Tak, teraz też się dla mnie pojawił :( Był w stanie zrestartować się tylko raz, bez ponownego pojawienia się.
Oddler
1
Rozwiązanie polegające na dodawaniu i usuwaniu klawiatury jest znacznie bezpieczniejsze i tak hackerskie jak ta :)
user2158153
Czy próbowałeś, zamiast usunąć Preloadklucz, usunąć jego wpisy i ograniczyć uprawnienia do klucza? Poszedłem do uprawnień Preload, Zaawansowane, wyłączone dziedziczenie, przekonwertowałem wszystkie odziedziczone uprawnienia, usunąłem je wszystkie, dodałem uprawnienia tylko do odczytu Everyonei zapisałem. Powinno to uniemożliwić systemowi Windows ponowne dodawanie wpisów, które ponownie dodają profile klawiatury.
dniu
58

W rzeczywistości rozwiązanie jest dość proste i nie wymaga edycji rejestru!

  • Przejdź do regionu i języka (poprzednio nazwanego Preferencje językowe) , kliknij angielski (Stany Zjednoczone) i przejdź do Opcje .

  • Jeśli zobaczysz tam „Klawiaturę amerykańską”, usuń ją i gotowe.

  • JEDNAK , jeśli go tam nie widzisz, kliknij Dodaj klawiaturę , dodaj „Klawiatura amerykańska”, a następnie usuń tę klawiaturę i gotowe.

Zrozumiałem to po kilku próbach i błędach wypróbowania różnych rzeczy, miałem ten sam problem.

Snaiper
źródło
18
Pojawia się po ponownym uruchomieniu.
troorl
6
Trzeci punkt to dosłownie: „Czy próbowałeś go ponownie włączać i wyłączać?” ... i to był punkt :) Dzięki za to!
ccjmne
3
Nie działa po ponownym uruchomieniu, przetestowałem to przed
wymyśleniem
1
Tak, nie działa po ponownym uruchomieniu lub po hibernacji komputera.
Ozan Kurt
2
Po aktualizacji systemu Windows 10 z czerwca 2018 r. Ustawienie „Usuń” dla języka angielskiego w USA jest wyłączone. (Grr.)
ms609
6

To nie jest stała poprawka, ale przydatny plik wsadowy, który dodaje en-USukład klawiatury, a następnie ją usuwa. (Musisz go najpierw dodać, aby móc go usunąć).

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"

Następnie możesz po prostu uruchomić, Remove_en-US.bataby usunąć układ. Mam również skrót do tego pliku wsadowego w moich programach startowych.

Tutaj 0409jest locale IDi 00000409to wartości układ klawiatury. Aby locale ID:keyboard layout valuezobaczyć listę patrz https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh825682(v=win.10) .

joon
źródło
5

Znalazłem odpowiedź po godzinie na kompilację:

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.18362 N/A Build 18362
  1. Działa to nawet po ponownym uruchomieniu.
  2. To łatwe do zrobienia. I na dobre.
  3. Powstrzyma to tworzenie innych języków dla nowych użytkowników.
  4. Te języki nie będą już wyświetlane również na ekranie logowania.
  5. Brak hacków rejestru, które nie działały dla mnie po ponownym uruchomieniu.

Możesz także przejść przez ( ale najpierw sprawdź ustawienia języka - patrz zrzuty ekranu poniżej ).

Panel sterowaniaRegionAdministrativekarta →Copy settings...


Oto krok w obrazach z zapisem w obrazach również w celach informacyjnych.

jak

W takim razie rejestr powinien wyglądać tak, z tylko jednym wstępnym załadowaniem.

Skopiuj to Computer\HKEY_USERS\.DEFAULT\Keyboard Layout\Preloaddo paska adresu edytora rejestru, aby przejść bezpośrednio do niego i sprawdzić sam.

jedno napięcie wstępne

Stephen Sherry
źródło
4

Istnieją dwa miejsca do konfiguracji klawiatury w Windows 10, panel sterowania -> Język

Drugi jest ustawiony tak jak zrzut ekranu

Wprowadza tam również zmiany, powinno to rozwiązać problem.

wprowadź opis zdjęcia tutaj

znak
źródło
Niestety nie o to chodzi, dodałem zrzut ekranu z tego ekranu na moim komputerze, jest on poprawnie skonfigurowany z „szwajcarskim francuskim” dokładnie tak samo, jak w nowym interfejsie użytkownika
Luis Ferrao
4

Nie miałem wpisu 409 do rejestru (patrz zaakceptowana odpowiedź). Kroki, które podjąłem, aby usunąć angielski (amerykański) z menu szybkiego wyboru:

  1. Otwórz „Preferencje językowe” z menu szybkiego wyboru.
  2. Dodaj język angielski (amerykański).
  3. Usuń język angielski (amerykański).

Wskazówka: W Panelu sterowania \ Wszystkie elementy panelu sterowania \ Język \ Ustawienia zaawansowane -> Zmień klawisze skrótu paska języka, możesz ustawić akcję skrótu dla „Między językami wprowadzania” na „(Brak)”, aby uniknąć przypadkowego przełączenia układu klawiatury.

PatrykM
źródło
2
Myślę, że twoja odpowiedź nie ma sensu tego pytania. Problemem nie jest usunięcie języka angielskiego USA, który wpisuję i zdecydowanie chcę z mojej listy języków, chodzi o to, aby usunąć nieistniejący układ „Klawiatury amerykańskiej”, który nie pasuje do mojego układu klawiatury i który skrada się przy każdym raz na jakiś czas jako dodatkowy „język” na liście języków. Istnieje wiele wątków dotyczących usuwania samego języka angielskiego w USA, ale ten nie jest jednym z nich. Nie mam też na myśli usuwania listy języków, używam jej do szybkiego przełączania się między językami przez cały czas (dla sprawdzania pisowni w systemie Windows).
Luis Ferrao,
2
  1. Panel sterowania
  2. Zegar, język i region
  3. Język
  4. Zmień metody wprowadzania
  5. Zaawansowane ustawienia
  6. Zastąp dla domyślnej metody wprowadzania
  7. Wybierz preferowany układ (zamiast „Użyj listy języków”)
  8. Zapisać

Zrzut ekranu ustawień wprowadzania -> Ustawienia zaawansowane

Matt.
źródło
W najnowszych aktualizacjach Win10 brakuje teraz „języka”.
platyny
2

Powyższa odpowiedź Mikela naprawia to ... ale na wypadek, gdyby pojawiło się to ponownie (tak jak dla mnie): Czy może masz niestandardowy skrót AutoHotkey do zmiany układu klawiatury?

Problem polegał na tym, że mój skrypt AutoHotkey zawierał następujące wiersze kodu:

; 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

Podczas gdy na moim pulpicie działałoby to pięknie i przełączało się z angielskiego (układ klawiatury w Wielkiej Brytanii) na grecki (układ klawiatury GR) i odwrotnie, na moim laptopie z klawiaturą amerykańską, ten skrypt byłby odpowiedzialny za dodatkowe układy pojawiające się z niebieski na moim przełączniku języków.

Mam nadzieję, że to pomoże!

Angelos
źródło
1

Rocznicowa edycja systemu Windows 10 zawiera nową „funkcję”, w której zakłada się, że ustawienia regionalne i językowe mają obowiązkowy układ klawiatury. Tych układów nie można usunąć za pomocą graficznego interfejsu użytkownika.

Ale udało mi się go pokonać za pomocą programu PowerShell za pomocą takiego skryptu:

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

Skopiuj i wklej w oknie PowerShell.

Powyższe demo konfiguruje domyślnie amerykański układ z dodatkowymi układami NL i BE. Dostosuj w razie potrzeby.

rustyx
źródło
nic nie zmieniło się dla mnie po wykonaniu tego polecenia
Lu55
0

Właściwie wydaje się, że problem dotyczy również tego samego klucza w twoim aktualnym profilu użytkownika ( HKEY_USERS\S-1-5-21-...\Keyboard Layout\Preload), nie tylko HKEY_USERS\.DEFAULT\Keyboard Layout\Preload.

Mogę replikować to dość konsekwentnie - kiedy dodam na przykład klucz 00000429 (perski) i zrestartuję komputer, automatycznie dodam klawiaturę perską, a kiedy ją usunę i uruchomię ponownie, perskiego już nie ma.

Podsumowując, możesz chcieć upewnić się, że nie masz niepożądanych języków ani w HKEY_USERS\.DEFAULT\Keyboard Layout\Preloadani HKEY_USERS\S-1-5-21-...\Keyboard Layout\Preload.

joon
źródło