<HOME>

文字入力

 

画像

 画像にあるForm1のプログラムを作成してみました。
こちらからプログラムのダウンロードができます。
 何ができるかと申しますと、スクリーンキーボードを出すことと接続されているUSBキーボードのデバイスを表示することができます。ただ画像のForm1の5と6行目の「\\?\ACPI〜」は同じに見える上なんなんだろ?

 最終的にはテキストボックスにカーソルがありUSBキーボードが接続されていると、USBキーボードを優先し、USBキーボードがない時はスクリーンキーボートを表示し別の場所(ボタン)に行ったときは消す。そんでもってCapsLockとかなんかへんなことされていたらすべて解除してしまうということをしてみたいんだが・・・・

 

 月日は流れ

 キーボードに関することでで久々に遊んでみました。

 まずは電源を切った状態でノートパソコンのキーボードの上に重い本をおき、電源をON。ピーピーうるさい。別のパソコンですると。あれ別に問題ないな。 で、今度は

 

画像

 

 写真のようにVistaのパソコンにPS2キーボードとUSBキーボードの2個つけて、さらにスクリーンキーボードをつけると、どんな動作をするのかということを検証してました。
 結論的には、連動しているようですね。スクリーンキーボードのNumLockボタンを押すとPS2キーボードとUSBキーボードのNumLockランプが連動してました。

 そんでもって、携帯電話のような文字入力機能をパソコンの画面に出してマウスで押すと便利かなと思い試作。

画像

 

 少しあやしい動きありです。Visual Studio C++ 2005で作成しています。.NETからSDKを呼ぶのって大変ですね。PS2やUSBのキーボードなしでIMEに渡して漢字変換するのって難しいです。
 中途半端ですが
 こちらからダウンロードできます。

 

 

 変換するところのコード書き出しは下のような感じです。
 HWND hWnd=GetActiveWindow();
 String ^shWnd=textBox1->Handle.ToString();
 int LhWnd=textBox1->Handle.ToInt32();
 hWnd=(HWND)LhWnd;
 SetFocus(hWnd);
 HIMC hIMC = ImmGetContext(hWnd);
 ImmSetOpenStatus(hIMC, TRUE); 〜

 携帯のインタフェースになれている人って多いので、ちょっとした入力程度なら便利なように思うのだが・・・。タッチパネルでしたら使えるかなぁ。ATMとかで・・・。

 いがいとキーボードの文字配列って憶えるの大変だし・・・。いまだローマ字打ちです。タッチパネルや画面なら50音配列キーボードもできるかも・・・。なれの問題か。