
【未解決】【決定版…にしたいので助けてください】キーボードレイアウトを日本語にする
皆さんこんにちは。胡田です。
キーボードは日本語キーボード派ですか?それともUSキーボード派ですか?私は大学時代にはずっとUS配列で過ごしていたのですが、社会人になってから会社支給のノートPCが日本語配列だったのでもうすっかりUS配列を忘れてしまいました。
でも、たまに、なぜかよくわからないけれどもUS配列になってしまっていることってありますよね。記号がスムーズに打てなくて本当に困りますよね。そして、直し方も色々あるのですが、環境によってうまく行ったり行かなかったり…なんだか無駄に苦労しますよね。
これまでの人生で日本語配列に直せなくて苦労したことが何十回もあり、直し方もまちまちで本当に何度も苦労してしまっているので「これらを一通りやれば絶対に日本語配列になる!」という決定版を作りたく、このエントリを書いております。
どれかの設定変更をすることで直ることもあれば、それでは直らないというケースもあると思います。このページにかかれていることを頭から全部やればどれかでは直る…という感じにできるといいなぁと思っております。
「まだ治らない」「他にもこういう事象と修正方法があるよ」という情報は大歓迎なので是非コメント等で教えてください。
Windows 10のキーボードレイアウト設定
まずはOSの設定を確認し、正しく設定します。
※Windows 10はメニューの場所が頻繁に変わりますので、お使いのものとは異なるかもしれません。コンセプトレベルでは変化しないと思いますので適宜読み替えてください。
キーボードドライバを設定する
キーボードデバイスとして日本語配列のキーボードではないものが認識されていたらドライバを更新して日本語配列のものにします。
※本来は正しくキーボードを選択することが最適なのですが、とりあえず日本語配列にしたければ標準キーボードの「日本語 PS/2 キーボード(106/109 キー Ctrl + 英数)」を選択してしまうのが簡単です。
再起動します。
レジストリを設定する
ここまでの対応で直ってしまうケースは大半ではありますが、それでもまだうまく行かないケースも多々あります。レジストリで設定します。
上記の文字列をコピーし、notepad等のテキストエディタに貼り付け、「106keyboard.reg」などと名前をつけて保存します。
作成したファイルを管理者権限があるユーザーで実行すると警告が出ますが、そのまま「はい」をクリックします。
実行後は再起動してください。
(参考)仮想環境で展開するWindows VMのキーボードレイアウトは応答ファイルで日本語レイアウトにしておくことができます。下記エントリを参考にしてください。
RDP経由で接続しているHyper-V上の仮想マシン
私の経験だと、物理PCであればここまでの対応で日本語レイアウトになってくれます。
RDP経由で接続している仮想マシンに関してこれでもうまくいかないケースがありました。非常に困りました。というか現在進行系で困っています。実はこれを直したくてこのブログエントリを書き始めたのでした…。急にここから作業記録風になります。
環境は以下です。
- アクセス元PC: Windows 10 日本語キーボード(問題無し)
- RDP先PC:Windows Server 2016(Hyper-V Guest)
- 利用クライアント:リモートデスクトップクライアント(ストアアプリ)
キーボードデバイスとしては「Microsoft Hyper-V 仮想キーボード」と「リモートデスクトップキーボードデバイス」の2つが認識されています。
キーボードレイアウトに関するレジストリエントリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
を確認すると、USレイアウトの指定になってしまっています。
これが原因かもしれません。
もちろんレジストリに関してはレジストリファイルを実行済み、変更済みだったのですが、何かのタイミングで戻ってしまうのかもしれません。
さらに上で赤枠で囲った「LayerDriver KOR」に関しては、ローカルに関しても、リモートに関してもどちらにも「あると日本語配列にできない」という情報がネット上にあったので削除しておきます。
この状態で一度再起動してみます。
結果は現象変わらずでした。残念。
上記の設定を何度も交互に変更し、レジストリの変化を確認したところ、この設定変更とレジストリ設定が連動していることは確認できました。が、うまくいきません。
そして、わかっていることとして、「リモートデスクトップクライアント(昔からあるmstsc.exe)」で接続したときと、Windowsストアアプリのリモートデスクトップクライアントでアクセスしたときとでは、キーボードレイアウトが異なっています。RDPクライアント側の問題である可能性も高そうに思います。
この線で検索したところ、下記の記事がヒットしました。
- Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について | Ask CORE
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
確認したところ、記事の通り、KBDJPN.DLLになっていました。
kbd106.dllに変更して、再起動しました。
結果、確かにキーボードレイアウトは変化しましたが、またUS配列とも日本語配列とも異なるレイアウトになってしまいました…。(UWP版のリモートデスクトップ)
しかし、mstsc.exeでは正常に日本語レイアウトでキーボードを打てるようになりました!
…というわけで、現段階ではここまでにしたいと思います。どうやら「UWPアプリ」が別枠で問題を抱えており、そこへのケアが必要な状況のようです。
そのうちWindowsが更新されて自然に直ることを期待しますが、「こうすればUWPアプリも含めて大丈夫だよ!」という情報あればいただけると嬉しいです!