2

Windows 8 システムに Bramma TTF ファイルをインストールしました。Windows の文字マップを通じて、個々の文字コードを見つけることができました。地図のスクリーンショットの下に添付されています。右下に「!」の文字コードが見えます。0x21 です。同様に、他のすべての文字のすべての文字コードを見つけることができます。

Bramma TTFのキャラクターマップ

ここで、米国ベースのキーボード レイアウトを使用して、このフォントの文字マッピングを定義しました。たとえば、キーボードの物理文字 'a' を 3 行 1 列目に示されている文字にマッピングしました。[キーボードから「a」を押すたびに、対応する文字が表示される必要があります]

キーボードのヒットをリッスンし、以前に定義した文字マッピングに従って、C プログラムがそのマップされた文字を出力するように、バックグラウンド C プログラムを作成したいと思います。つまり、キーボードから文字「a」を押すと、マップされた文字が返されます。

この問題を解決するために誰かが私を助けてくれますか、それとも解決への道を私に教えてくれますか.

4

4 に答える 4

2

私はこれらの種類のフォントにある程度精通しており、SO の他の質問でポップアップしました。そのようなフォントを使用した結果に対処しようとしたユーザーからの質問の種類。彼らはかなり深刻です。

最大の問題は、このフォントが Unicode に対応していないことです。画面に表示されるテキストの下にある実際の文字列は大きく異なり、ANSI 文字セットの文字が含まれています。これらの文字列を表示するプログラムがデータを保存するとき、恐ろしい問題が発生します。データ ファイルには元の文字列が含まれています。良い例は Excel スプレッドシートです。このスプレッドシートは、他のプログラムによって読み取られると意味不明な内容が含まれているだけです。同じフォントがインストールされていない別のマシン上のプログラムによって読み取られた場合は特に悪い. とても、とても痛い。

実際、キーボードから ANSI 文字への通常のマッピングを破壊することで、この問題を悪化させています。3 行目の 1 番目の文字は、キーボードで大文字の I (目) を入力することによって生成されます。

メッセージは明確です:これをしないでください。Windows は、Sylfaen、Mangal、Latha などのインド語スクリプトを含む Unicode 互換フォントをサポートしています。これらはすべて、通常使用されている場所から約 1 万マイル離れた Windows 8 マシンで利用できます。また、言語アプレットで使用できるインド語キーボード レイアウトもあります。例として 1 つだけ選びました。

ここに画像の説明を入力

さて、あなたのお葬式です。これらのキーストロークを変換するために C プログラムを作成する必要はありません。カスタム キーボード レイアウトが必要です。DLLです。通常、それらをビルドするには DDK が必要ですが、それらを自動生成するための簡単なツールが用意されています。Microsoft キーボード レイアウト クリエーターである MKLC を使用することほど簡単なことはありません。ウェブページとダウンロードリンクはこちらです。

于 2013-02-27T17:07:32.803 に答える
0

おそらく、autohotkeyを使用する必要があります。このアプリケーションを使用すると、キーのセットを聞いてから、別のキーのセットを送信できます。

これは「オートコレクト」の実装として使用できます

例えば

:*:btw::By the way `

に自動修正btwされBy the wayます。

autohotkeyは非常に複雑なスクリプトをサポートしており、多くのスクリプトがすでにオンラインで利用可能です。

別の注意点として、英語のキーボードでマラヤーラム語のUnicode文字のみを印刷したい場合は、barahaと呼ばれる人気のあるソフトウェアを考えることもできます。

于 2013-02-28T14:46:28.273 に答える
0

http://www.tavultesoft.com/を使用すると、MSWindowsおよびWeb用のキーボードを作成できます。1000以上のキーボードがすぐに提供されます。開発者版とユーザー版があります。開発者向けバージョンでは、フォント、キーボード、キーマップ、およびドキュメントをインストールするインストールプログラムを作成できます。

于 2013-03-06T08:12:58.233 に答える
0

Google の仮想キーボード (物理キーボードでも動作します)

https://code.google.com/apis/ajax/playground/#virtual_keyboard
于 2013-03-05T23:29:44.987 に答える