Microsoft キーボード レイアウト クリエーターは、ZWNJ (U+200c) を空白文字として受け入れません。

Microsoft キーボード レイアウト クリエーターは、ZWNJ (U+200c) を空白文字として受け入れません。

Microsoft Keyboard Layout Creator 1.4 を使用して、カスタム ペルシア語キーボード レイアウトを作成しています。ペルシア語 (標準) レイアウトのように、 +を ('‌' - U+200c) 文字として
定義したいのですが、DLL をビルドしてパッケージをセットアップしようとすると、空白文字として受け入れられません。ログ ファイルに次のエラーが表示されます。ShiftSpaceZWNJZWNJ

エラー: Shift 状態 'Shift' の 'VK_SPACE' は空白文字で構成されている必要がありますが、代わりに '‌' (U+200c) として定義されています。

この問題をどうやって解決すればいいでしょうか? 代替ソフトウェアはありますか?

答え1

Microsoft Keyboard Layout Creator で キーを+Spaceにマッピングしようとすると 、次のエラー メッセージが表示されます。ShiftSpace

ここに画像の説明を入力してください

これはマイクロソフトの制限で、おそらくユーザーが使用できないキーボードレイアウトを作成することを懸念したのでしょう。 役職 2012年から始まり、それ以来変わっていません。

その場合、Windowsより先に入力されたキーを取得するサードパーティ製品、例えば次のような製品が解決策となる。 オートホットキー

次の 1 行の AutoHotkey スクリプトは、+が押された200C ときにUnicode キーを送信します。ShiftSpace

+Space::Send {U+200C}

AutoHotKey をインストールしたら、スクリプトを.ahkファイルに入れてダブルクリックしてテストします。トレイバーの緑の H アイコンを右クリックして [終了] を選択すると、スクリプトを停止できます。ログイン時にスクリプトを実行するには、 のスタートアップ グループに配置します C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

役に立つ AutoHotkey ドキュメント:

答え2

追加のソフトウェアを使用する必要はありません。MSKLCU+200Cで定義した文字として設定することはできますが、デッド キーとして設定する必要があります。したがって、キーを通常のU+0020文字として設定し、デッド キー機能を有効にします。そこでは、スペースでなくても、任意の文字を設定できます。私は、U+2011AltGr (Ctrl+Atl) でスペース キーをレンダリング (非改行ハイフン) するように設定しました。唯一の欠点は、文字をレンダリングするには、スペース キーを 2 回押す必要があることです。

動作するかどうかも教えてくださいU+200C

私がカスタム レイアウトで行ったことを見て、真似してみましょう。

関連情報