web-dev-qa-db-ja.com

Windows 7が言語(キーボード)設定を変更し続ける

WindowsネットワークでWindows 7 Ultimateを使用しています。私のデフォルト設定はデンマーク語ロケール、デンマーク語キーボードレイアウトですが、英語のシステム言語です。私はデンマーク語のキーボードレイアウトのみをインストールしています(テキストサービスと入力言語で)。

ただし、ログイン画面ではデンマーク語と英語を選択できますが、Windows 7を選択すると、システム言語(およびキーボードレイアウト!)が英語(米国)に変わります。これはアプリごとの設定なので、言語設定(タスクバーの言語バー)を変更する必要があります

これはシステム全体および永続的にどこで変更できますか?

18
Hans

地域を変えるという同じ問題がありました。

右下のタスクバーのキーボードアイコンを右クリックし、「自動調整」のチェックを外しました。

フランス語のスクリーンショット:

Screenshot of French version of the "auto adjust" setting

14
user413734

コントロールパネル地域と言語を開き、次の操作を行います。

キーボードと言語タブをクリックし、キーボードの変更...をクリックします

enter image description here

ここからデフォルトの入力言語デンマーク語に変更できます。

enter image description here

または、USキーボードを完全に削除できます。

enter image description here

これらのいずれかを実行すると、アプリごとに変更する必要がなく、デンマーク語キーボードのみを使用できるようになります。システム全体。

8
paradd0x

最善の解決策(私がしたように、複数のキーボードにアクセスしたい場合)は、コントロールパネル、キーボード、言語/詳細設定に移動することです。

からキーボードを切り替えるためのキーボードショートカットを変更します Ctrl/Shift 誰にも!

ずっと、私もそれが「ランダム」ベースでEngからFrに変化していると思っていました。しかし、それはまったくランダムではありませんでした。私は常にキーボードショートカットを使用しており、私のお気に入りの1つは Ctrl+Shift+Tab Chromeの前のタブに移動するため。

コントロールパネルに移動するという他の誰かの提案をチェックしたときに、ショートカットの競合に遭遇しました。そのとき私は問題を見ました。言語を変更するためのキーボードショートカットをオフにしたら(大したことはありません)、問題が発生することは二度とありません。ランダムかそうでないか!謎解きました!

5
Michael Scott

[コントロールパネル]> [地域と言語]> [キーボードと言語]タブ> [キーボードの変更]に移動し、不要なものを削除します。

2
KCotreau

私は同じ問題を抱えていました:私のKBはUSとUKキーボードの間で切り替え続けましたそれでも UK KBがインストールされていませんでした。私は英国のキーボードを追加し、それを削除することでこれを解決するように管理しました。言語バーが消え、私の入力KBはUSのままです。

1
Ryan

これは最も厄介なバグであり、本物の真新しいHPコンピューターでも発生します。
Windows 7 Buisness OEMですが、私の問題は 'MS Word 2003'がキーボードレイアウトを変更しないことにも関連しています(アポストロフィが適切にできませんでした)

私は2つのキーボードレイアウトを使用します:US-InternationalおよびFrench

私のために働いたこれらの解決策とあなたの問題のように見えるいくつかを見つけました:

方法1

MS Word 2003では、[“]とアポストロフィ[‘]は、別のキーが押されるまで表示されませんでした。
次に、このキーと引用符またはアポストロフィが画面に表示されます。

キーボード設定をチェックインしたところ、システムは米国-インターナショナルとフランス語に設定されていました。

キーボードレイアウトを別のUSレイアウトに変更し、US-Internationalキーボードレイアウトを削除しました。

OKを押した後、Word文書でテストしましたが、問題はまだ残っていました。

しかし、システムを再起動した後、通常に戻り、通常どおりアポストロフィと引用符を使用できました。

Suggestions (if it fails):
Windowsのローカル言語のUnicodeを変更して、動作を確認してください。
アプリケーション言語の切り替えの問題に関連する別の提案は、キーボードレイアウトを切り替えるホットキーの組み合わせを変更することです。
Microsoft Wordの「Smart Quotes」オプションを設定する場合は、Wordでもオフにします。

方法2

レジストリ値を変更する前に、復元ポイントまたはレジストリバックアップを作成することをお勧めします。
自己責任で使用してください
キーボードレイアウトを手動で変更するには、キーボードレイアウトを変更する必要があります\プリロード\
レジストリのレジストリキー:

Start>キーを押してRegedit.exeと入力します

レジストリで次のキーを見つけます。

HKEY_CURRENT_USER\ Keyboard Layout\Preload\1

レジストリキーを編集し、文字列キー "1"の値の設定を、必要なキーボードレイアウト名の横にある下記の「ID言語コード」番号に変更する必要があります。

閉じるRegedit.exe

コンピューターを再起動

注:2つのキーボードレイアウトを切り替えられるようにする場合は、Preload\2を使用します。

以下のID言語コードを見つけてください。

00000402="bg"
00000404="ch"
00000405="cz"
00000406="dk"
00000407="gr"
00000408="gk"
00000409="us"
0000040A="sp"
0000040B="su"
0000040C="fr"
0000040E="hu"
0000040F="is"
00000410="it"
00000411="jp"
00000412="ko"
00000413="nl"
00000414="no"
00000415="pl"
00000416="br"
00000418="ro"
00000419="ru"
0000041A="yu"
0000041B="sl"
0000041C="us"
0000041D="sv"
0000041F="tr"
00000422="us"
00000423="us"
00000424="yu"
00000425="et"
00000426="us"
00000427="us"
00000804="ch"
00000807="sg"
00000809="uk"
0000080A="la"
0000080C="be"
00000813="be"
00000816="po"
00000C0C="cf"
00000C1A="us"
00001009="us"
0000100C="sf"
00001809="us"
00010402="us"
00010405="cz"
00010407="gr"
00010408="gk"
00010409="dv"
0001040A="sp"
0001040E="hu"
00010410="it"
00010415="pl"
00010419="ru"
0001041B="sl"
0001041F="tr"
00010426="us"
00010C0C="cf"
00010C1A="us"
00020408="gk"
00020409="us"
00030409="usl"
00040409="usr"
00050408="gk"

キーボードレイアウトを手動で追加する方法の詳細については、次のリンクを確認してください。

PowerShellを使用したキーボード言語の追加と削除

1
Denja

私に役立つ解決策を見つけました。問題は、Installed Servicesの下にDvorakしかインストールしておらず、コンピューターのロケールがUSに設定されていたため、デフォルトのままにしていたことです。 Installed ServicesにUSを追加し、Dvorakを「デフォルトの入力言語」として設定すると、動作が開始されました。

あなたの場合、システムロケールをデンマーク語に変更すると、問題が解決する場合があります。 [地域と言語]ウィンドウ(最初の画像はThiagoです)で、[管理]タブをクリックし、[システムロケールの変更]をクリックして、リストから適切なものを選択します。

これがあなたにとって望ましい修正であるかどうかはわかりませんが、それで終わりです。これがそれほど複雑でないことを本当に望みます。私のMacにはこの問題はありません... ;-)

0
atraudes

AHKを使用します。最後に、私のすべての試みの後、それはWindows 7でのロシア語と英語の自動切り替えに関する私の問題を解決しました。すべてのスレッド/ウィンドウで表示する言語を定義し、キーボードショートカットで変更できるようにします。コード:

#SingleInstance, Force ;
LangCode_First := 67699721          ; langcode of first language in decimal ( i made it by 0x0409 --> 0x04090409 --->  https://www.rapidtables.com/convert/number/hex-to-decimal.html 
LangCode_HEX_First := 0x0409        ; langcode of first language in HEX (get it here https://docs.Microsoft.com/en-us/windows/win32/menurc/varfileinfo-block)
LangCode_Second := 68748313         ; langcode of second language
LangCode_HEX_Second := 0x0419       ; langcode of second language in HEX

; English (USA) 0x0419 0x4190419 68748313 (HEX to Dec)
; Russian 0x0409 0x4090409 67699721 (HEX to Dec)

;function that set keyboard language
    SetDefaultKeyboard(LocaleID){
        Static SPI_SETDEFAULTINPUTLANG := 0x005A, SPIF_SENDWININICHANGE := 2

        Lan := DllCall("LoadKeyboardLayout", "Str", Format("{:08x}", LocaleID), "Int", 0)
        VarSetCapacity(binaryLocaleID, 4, 0)
        NumPut(LocaleID, binaryLocaleID)
        DllCall("SystemParametersInfo", "UInt", SPI_SETDEFAULTINPUTLANG, "UInt", 0, "UPtr", &binaryLocaleID, "UInt", SPIF_SENDWININICHANGE)

        WinGet, windows, List
        Loop % windows {
            PostMessage 0x50, 0, % Lan, , % "ahk_id " windows%A_Index%
        }
    }

;your shortcut for swithing language

!LShift::SetKey()

;function that detect current language and change it, if it is needed
SetKey(){

    if ("" DllCall("GetKeyboardLayout", Int,DllCall("GetWindowThreadProcessId", int,WinActive("A"), Int,0)) = 67699721)  ;change value here to your lang code
    {
        SetDefaultKeyboard(0x0419) ;change value here to your lang code
    }
    else if ("" DllCall("GetKeyboardLayout", Int,DllCall("GetWindowThreadProcessId", int,WinActive("A"), Int,0)) = 68748313) ;change value here to your lang code
    {
        SetDefaultKeyboard(0x0409) ;change value here to your lang code
    }
}

最初に、必要な言語コードを確認できます。それらを here から抽出し、追加のパラメーターを変換できます here(HEXからDEC) コードの最後にある変数も変更してください。

Change Key Sequenceの両方のオプションを変更して、デフォルトの言語切り替えショートカット 詳細キー設定メニュー を削除することもお勧めしますへ割り当てられていない