質問: 普段、US配列のキーボードを利用していて、たまに別の人が自分のPCを 操作する時だけ、JIS配列のキーボードを利用したいと思っています。 USキーボードで日本語入力をしている状態でJISキーボードに差し替えても、 USキーボードのキーレイアウトのままになってしまいます。 そこで、日本語と英語の言語モードを併用して * USキーボードを使うときは英語 * JISキーボードを使うときは日本語 という感じで運用していこうと思ったのですが、言語を英語に設定したときに 日本語入力(ATOK)ができず、どうやらこの対応では自分のやりたいことは実現 できなさそうでした。 なにかよい方法はないでしょうか。。
回答: Windows 10の日本語入力(MS-IME、Google日本語入力、Atok)でキーボードがUSかJISかを判断しているところは ``` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters ``` にあるレジストリです。このレジストリのパラメーターは**サインオン時に**参照され、キーボードレイアウトが決定します。逆に言うと、既にサインオンしている状態でレジストリを書き換えても、一度サインオフしない限り反映はされないと言うことです。(レジストリの書き換え自体は、設定->時刻と言語->地域と言語->日本語->オプション->レイアウトを変更する、で行えます。なお、この場合も一度サインオフすることが求められます。この動作は1709までになります。1803以降は追記を見てください。) サインオンし直しても良いのであれば、上記レジストリを変更してサインオンし直せばいいだけですが、サインオンを維持したまま切り替えるとなると、上記方法はとれません。別の手段をとる必要があります。 1. USキーボード風JISキーボードで我慢する。 USキーボードを使う理由が、通常のJISキーボードだと「スペースバーが狭い」「かな印字がダサい」「Enterキーの形がダサい」程度であれば、探せば見つかると思います。 2. USキーボードを改造して、USキーボード風JISキーボードにする。 お気に入りの配列のUSキーボードがあれば、内部の配線や制御基板を改造(または自作)し、JISキーボードとしてのキーコードを送ります。調べると「キーボードを作ろうぜ!キット」なるものも有りますので、電子工作が得意であれば、割と簡単にできるかも知れません。ただ、USキーボードはJISキーボードと比べてキーが少ないですので、何らかの工夫は必要です。 3. 汎用キーカスタマイズソフトを使って切り替える。 ソフトとしては有償ですが「のどか」があります。OS側がJISキーボードであってもUSキーボードは入力できますが、色々と位置が異なったり、足りないキーもあります。そこで、「のどか」等を使って、異なる部分のキーバインディングを変更します。設定をオン・オフをサインオンしたまま切り替えられますので、JISキーボードを使うときは設定をオフにすれば良いだけとなります。 4. リモートデスクトップ経由で使う。 そこそこのスペックともう一個Windowsのライセンスが必要になりますが、Hyper-VやVirtualBox等の仮想環境に**メインとなる**Windowsを入れておきます。通常運用では、そのメインとなる仮想上のWindowsにリモートデスクトップで接続して、使用します。 Windows 10で使えるMicrosoft提供のリモートデスクトップクライアントは二種類有ります。 * 標準でインストールされるデスクトップアプリの「リモート デスクトップ接続」 * ストアアプリの「リモート デスクトップ」キーボード配列について、デスクトップアプリ版は接続先の設定を参照しますが、ストアアプリ版は接続元の設定に基づきます。この性質を利用して、片方がUS、もう片方がJISになるように調整します。ただし、リモートデスクトップのキーボード配列周りはアップデートで動作が変わる場合があります。本来はストアアプリのような動作が正しいため、どこかのタイミングでデスクトップアプリがストアアプリと同じ動作になる可能性があります。 以上ですが、Windows 10以外では一部異なることに注意してください。上記のレジストリを使う仕様はWindows 2000から変わっていませんが、設定方法や内容は少し異なります。 【2018/06/03追記】 Windows 10 1803ではキーボードレイアウト変更で再起動が求められるようになりました。UWPアプリでは上記のレジストリの見方も変わったようです(`LayerDriver JPN`だけ変更しても反映されなくなった)。サインオンしなおしだけでは反映されなくなっている可能性がありますので、ご注意ください。