質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.92%

Win10 1607でDvorakにするレジストリがストアアプリに効かない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 8,017

score 20917

前提・実現したいこと

Windows 10 1607(いわゆるAnniversary Update)で日本語IMEをDvorak配列にしています。レジストリを用いて(方法は後述)変更していますが、Dvorak配列にはならずQWERTY配列になってしまう時があります。

発生している問題

次のテキスト入力において、日本語入力がoff(直接入力モード)になっている場合、QWERTY配列になります。

  • ストアアプリ内にある文字入力
  • スタートメニューにあるCortanaの検索文字入力
  • Microsoft Edgeのスタートにある「検索またはWebアドレスを入力」やアドレスバーへの入力

ストアアプリでは無い通常のアプリケーションでは発生せず、Dvorak配列として入力できます。
日本語入力がonの状態(日本語を入力できるモード)ではDvorak配列として入力できます。
Microsoft EdgeではWebページ上の入力に関しては、正常にDvorak配列になります。

該当のレジストリ

Dvorak配列にするために、レジストリを下記のように変更しています。(下記はregファイル形式)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411]
"Layout File"="KBDDV.DLL"

00000411は日本語レイアウトを表しており、Loyaut FileKBDJPN.DLLがデフォルトですが、KBDDV.DLLに変更することで、日本語レイアウトがDvorak配列になります。Windows 7でも使える昔からの方法です。

試したこと

Anniversary Update適用前の1511では現象は発生していませんでした。
入力が「英語 米国-Dvorakキーボード」の場合は、Dvorak配列になっています。
スクリーンキーボードはQWERTY配列ですが、こちらはWindows 7の時からそうだったはずのため、関係はないかと思います。
その他、Anniversary Updateの情報がまだ少なくよくわかっていません。ストアアプリ周りのキーボード入力について、何か情報をお持ちの方は教えてください。

補足情報(言語/FW/ツール等のバージョンなど)

OS: Windows 10 1607 (いわゆるAnniversary Update)
エディション: HomeおよびPro両方で発生
導入方法: 1511から1607にアップデートした場合も、1607のメディア使って新規にインストールした場合も発生
IME: Microsoft IME、Google 日本語入力、ATOK 2016のいずれでも発生
キーボード: JIS配列(106キーボード)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

+2

(Windows 10 Version 1809 は未確認です)
【2018年10月05日追記】Windows 10 Version 1803 では、Windows 10 Version 1803 の累積更新プログラム KB4458469 の適用により有効になります。パッチ未適用の場合は、バグにより下記方法では正常に動作しません。
【2018年7月13日追記】Windows 10 Version 1803 では、下記の方法を使ってもストアアプリではIMEオフ状態でDvorak配列になりません。1803以降で可能にする方法は現在わかっていません。


方法がわかりましたので、記載します。

注意事項(必ずお読み下さい)

  • この方法は私が独自に調査し、実践した内容です。私の環境では正常に動作していますが、動作の保証は一切ありません。問題が発生した場合の責任は負いかねますので、自己責任で実施して下さい。
  • この方法にはレジストリの変更が含まれています。間違った設定を行った場合、サインインできないなどWindowsが使用できない状態になる場合があります。バックアップを取得し、リカバリーディスク等を用意した上で実施して下さい。
  • Windows 10 Version 1607, 1703, 1709, 1803(KB4458469適用済み) でのみ検証しています。それ以外のWindows(10 Versino 1511、8.1、7等)では検証していません。1809 以降は現在未確認です。

方法

事前準備

まず前準備を行います。

  1. OSが「Windows 10 Version 1607」以上であることを確認します。「スタートメニュー」→「設定」→「システム」→「バージョン情報」にて、「バージョン」が「1607」以上である事を確認して下さい。もし、「1511」など古いバージョンの場合は、Windows Updateを実施して下さい。
  2. ...\Keyboard Layouts\00000411Layout Fileレジストリを変更していた場合は、元の値KBDJPN.DLLに戻します。(今回の方法では、この部分のレジストリ変更は不要になりました。)
  3. 「言語」で"English"を追加しておきます。言語"English"でサインイン等ができることを確認しておきます。設定等を間違った場合、言語"日本語"でまともに入力できなくなる場合がありますので、緊急手段として用意します。

言語"日本語"のDvorak化方法

それでは本編です。

  1. 「スタートメニュー」→「設定」→「時刻と言語」→「言語」→「日本語」→「オプション」より、"日本語"の「言語のオプション」を表示します。
  2. 「言語のオプション」→「ハードウェア キーボード レイアウト」で、「キーボード レイアウト」を"英語キーボード (101/102 キー)"に変更します。サインアウトを求められますので、サインアウトし、サインインし直します。
  3. レジストリ エディターを起動します。(Win+Rで「ファイル名を指定して実行」を起動し、regeditと入力、実行します。)
  4. レジストリ エディターでHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parametersキーを開きます。このキーをエクスポートし、バックアップとして保存しておいてください。
  5. 名前LayoutDriver JPNの値をkbd101.dllからkbddv.dllに変更します。
    Dvorak配列のドライバに設定
  6. レジストリ エディターを閉じ、サインアウトします。
  7. 再度サインインすると、"日本語"の入力が全てDvorak配列になります。

以上になります。反映はサインアウト・サインインのみでされるようですが、うまくいかない場合は一度再起動してみて下さい。

その他

  • このレジストリの詳しい動作については、(Windows 7での内容ですが)下記ブログが参考になります。
    Windows7でのキーボードレイアウトの指定 | untitled document
  • "kbd101.dll"には"kbddv.dll"にはない関数が一つだけ存在しており(キーボードレイアウトドライバーは共通でKbdLayerDescriptorが実装されているが、"kbd101.dll"や"kbd106.dll"にはKbdNlsLayerDescriptorという別の関数も用意されている)、それが何に使われているかは不明です。この関数が呼ばれた場合、最悪OSごと落ちる可能性があります
  • IMEの種類(MS IME、Google日本語入力、ATOK)には依存しません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

raccyさんの利用環境は、
Mac(QWERTY) -(remote desktop)> Win(Dvorak)
とのことですが、
#せっかくWin上でDvorakのローマ字変換ルールを設定してもマシン買い替えたら手作業設定し直し?

そもそもmacOSのDvorak環境は超強力なので、接続元のApple->システム環境設定...->キーボード->入力ソース にてDvorakを追加して、それを利用すれば良いのではないでしょうか。
ちなみに私の場合は、
Mac(Dvorak/Kawasemi[Dvorak])-(remote desktop)>Winで、快適にDvorak配列を利用しています。
この場合、日本語辞書もいつも持ち歩きのmacOS/Kawasemiのモノが使えるので快適ですし、
ローマ字設定としてJLoDを利用する際にも、QWERTYのZの位置にある『;』に『あん』を設定できるなど、メリット大きいです。かきくけこをcacicucecoで打つ変態ローマ字規則も、書き出し/読み込みできるので隣のマシンや新マシンに移すのも簡単ですしね。
私の場合、macOSは、ほぼインテリジェントDvorakキーボードとして利用し、実際の作業はリモートデスクトップにてWin上で実施しています。
以上、ご参考まで。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/13 18:54

    すいませんが、この質問はリモートデスクトップでの話ではなくて直接Windowsを使うときの話です。リモートデスクトップ経由で発生した問題は別の質問としてあげています(そちらも解決済みです)。
    https://teratail.com/questions/59254

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る