外付けの日本語・英語キーボードを再起動なしで替えたい
アプリを使えばすぐにできるよ。
あれ、KeePassの自動入力がおかしい。。。
こんにちは、自称セキュリティ向上委員のしゃおです。
我が家では、外付けの日本語キーボード(JIS配列)と英語キーボード(US配列)を使うことがあるのですが、キーボードを変更するのに毎回再起動をしていました。
正直、すごく面倒くさい。。。(Microsoftさん、なんとかしてください!)
Microsoftさんが忙しい(解決してくれない)ようなので、Googleさんを活用してみたら、アプリ+一工夫で自己解決できたので、方法をまとめておきます。
Windos10でキーボード配列を変更する一般的な方法
スタートメニュー(Windowsキー) > 設定
「時刻と言語」をクリック
左から「言語」をクリック
優先する言語で「日本語」を一度クリックし、「オプション」を選択
「レイアウトを変更する」をクリック
現在の「日本語キーボード(106/109キー)」から「英語キーボード(101/102キー)」を選択
英語キーボードを選択すると、「変更はPCの再起動後に有効に有効になります。」と出るので、「今すぐ再起動する」を選択
※アプリケーション等保存していないものは事前に保存して閉じておきましょう。
再起動後、ハードウェアキーボードレイアウトを見てみると、「英語キーボード(101/102キー)」に変更されていることを確認
だがしかし、毎回再起動なんてやってられない!
キーボードレイアウト変更での目標(やりたいこと)
- 外付け日本語・英語(JIS配列とUS配列)キーボードの共存
または
- 再起動なしで、キーボードレイアウトの変更
内蔵&外付け日本語・英語(JIS配列とUS配列)キーボードの共存
日本語・英語キーボードをPCに接続した段階で、PCが自動判別してそれぞれJIS・US配列と見なしてくれることが1番望ましいので、共存から試していきます。
実際に試したこと
ググってみると、やりたいことに近い記事が出てきました。
Windows 10(1909)で日本語キーボード(内臓)と英語キーボード(USB)を同時に使用するためのメモ書き
画像付きのやさしい説明はQiitaにあります。
【Windows10 1909】レジストリをいじってJIS配列とUS配列を共存させる- Qiita
記事の内容としては、
- ノートPCの日本語キーボード(内蔵)
- 外付け英語キーボード(USB)
「内蔵+外付け」キーボードの共存(同時使用)で、私は「2つとも外付け」キーボードですが、一応試してみました。
以下、内蔵キーボードと外付けキーボードの場合
レイアウトを英語キーボードへ変更
上記「Windos10でキーボード配列を変更する一般的な方法」を参照
キーボードのデバイスインスタンスパスを調べる
Windowsキー > 「デバイスマネージャー」と検索
私は「で」のみの入力で出てきました。
画像では、Bluetoothキーボードを2つ接続しているので、どれが調べたいキーボードか分かりません。
一度すべてのUSBレシーバ(トングル)を抜くと、1つ残りました。
画像のように残っている場合は、過去に接続したキーボードです。
HIDキーボードデバイスを右クリック > プロパティから
「詳細」タブ > 「デバイスインスタンスパス」を選択
デバイスインスタンスパスの「値」をコピーしてテキストエディタなどに貼付け or SnippingToolなどで画像として残しておきます。
(残っているHIDキーボードを使うことがなければ「デバイスのアンインストール」で削除しても問題ありません)
つづいて、JIS配列のキーボードを差し込み
先ほどと同様、デバイスインスタンスパスを控えておく(=JIS配列キーボードのデバイスインスタンスパス)
レジストリエディターからシステム標準キーボード設定を削除
Windowsキー+r > 「regedit」と入力し、レジストリエディターを開く
「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters」の中にある
- OverrideKeyboardType
- OverrideKeyboardSubtype
2つを削除します。
※レジストリを変更する前は元に戻せるよう必ずバックアップを取りましょう!
この2つの値がキーボード配列を決めており、削除することで各キーボードのキー配列を有効にできるようです。
外付け日本語キーボードをJIS配列に変更
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\確認したデバイスインスタンスパス\Device Parameters を開き
新規 > DOWRD(32ビット)値
\Enum\HID\VID_046D&PID_C534&MI_00\e&15cc7abd&0&0000\Device Parameters
以下2つを作成
値の名前 | 値のデータ |
OverrideKeyboardSubtype | 2 |
OverrideKeyboardType | 7 |
ノートPCなど内蔵キーボードならば、その後再起動でJIS・US配列の共存ができるようですが、今回のように外付けキーボード×2では、うまくいきませんでした。
Windows10で配列の異なる複数のキーボードを使う方法 – Opensourcetechブログ
こちらの記事では、値の名前(Overrideの位置)が異なるので、一応試しましたが、上記同様に外付けキーボード×2ではダメでした。
外付け×2日本語・英語(JIS配列とUS配列)キーボードの共存
外付けキーボード2つのJIS配列・US配列共存については上記方法ではダメだったので、フリーソフトのアプリケーションを使う方法で日本語・英語キーボードの共存を試しました。
ここから成功した方法
実際に試したこと
もし、ハードウェアキーボードレイアウトを「英語キーボード(101/102キー)」にしている場合は、「日本語キーボード(106/109キー)」に戻しておきます。
フリーソフト「ULE4JIS」を以下のどちらかからダウンロード(インストール不要)
zip解凍後、「ULE4JIS」を起動すると「US Keyboard Layout Emulator for JIS Driver」と表示されます。
直訳で、JISドライバー用USキーボードレイアウトエミュレーター
※「隠す」をクリックすると、タスクバー右下のインジケーター領域にウィンドウが隠せます。
- 「エミュレーション停止」で日本語キーボード(JIS配列)
- 「エミュレーション開始」で英語キーボード(US配列)
- 「エミュレーター再起動」は、英語キーボード使用中に何か不具合が出たとき用でしょうか。
- 「終了」でも日本語キーボード(JIS配列)に戻ります。
起動するだけで、キーボードレイアウトがUS配列となるので
- インストール作業不要
- レジストリ設定が不要
- システムの再起動が不要
- 操作が簡単
と、本当に便利です。
作者である『nano』様に感謝!
ただし、私の使用しているアプリでは問題が発生しました。
ULE4JIS使用中の問題点&解決策
普通に文字を入力している分には全く問題ありませんが、パスワード管理ソフトで自動入力をしたときに問題が発生しました。
問題点:KeePassの自動入力が失敗する
「@」で入力したところが「[」となっており、配置的にJIS配列として入力されてしまいます。
原因としては、KeePassがハードウェア or システム上の設定=日本語キーボード(JIS配列)を見ているからだと思われます。
【制限事項】
ULE4JISまたはWindowsシステムの仕様により、以下の制限があります。キーボードフックを利用するアプリケーションと同時に利用すると、正しく動作しない可能性があります。
「Readme.txt」の制限事項にも記載がありました。
キーボードフック:本来「Windows > ウィンドウ」となるところに横取りする感じで、「Windows > Keyの判別や変更 > ウィンドウ」となるイメージ
参考:キーボードフックとマウスフックについて – KeyToKey開発ブログ
KeePassは上記の制限事項に見事に引っかかるようで、そのままではうまくいきません。
解決策:KeePass使用時のみ強制的に英語キーボード設定
USキーボードの登録
スタートメニュー(Windowsキー) > 設定 > 時刻と言語 > 言語
「優先する言語を追加する」をクリック
検索欄に「米国」と入力し、「English(United States)英語(米国)」を選択し、「次へ」をクリック
そのまま「インストール」をクリック
※「音声認識」「手書き入力」が必要なければ、チェックを外してもOK
「日本語」の下に「English(United States)」が表示されれば準備OK
自動入力に失敗するなら、USキーボードに切り替え
ショートカットキー「Windowsキー+スペース」を使えば、一瞬で「日本語 ⇔ 英語」の切替が可能です。
KeePassの自動入力(ハードウェア依存のアプリ)を使うときは、USキーボードに切替をしておけば入力が失敗することはありません。
自動入力が終わったら、再度「Windowsキー+スペース」で日本語に戻しておこう。
まとめ
「外付け日本語キーボード」と「外付け英語キーボード」を同時に使う人は、上記手順でOK
日本語キーボード・英語キーボードどちらかしか使わない人は、システムのキーボード設定を替えて一度再起動しておけば、設定が維持されるのでそちらの方がおすすめです。
合わせて、「たまに日本語・英語キーボードを変更する or 設定画面を開くのが面倒という人」のために、下記のようなスクリプトを作成してくれている方(Takeru-chan氏)がいましたので、紹介しておきます。
Change Keyboard setting on your Windows. – GitHub
現場からは以上です!
ではまた(#`・ω・´*)/
コメント