2011-08-25 6 views
5

私の仕事の一部をアウトソーシングしているアマチュア開発者にオーバーリーチし、その一部をやっています。私は辞書/シソーラス/スペルチェック&提案のアプリケーションでは、私はWindows環境内のすべてのアプリケーションで動作するようにしようとしている作業してきました。Raw入力API Windows 7/Vista OSでの使用範囲。全体の環境に適用することができますか?

私はキーストークスを取得した人が、定義やスペルの提案を入力しているような出力を表示するためにフックを使用しました。これは私が望むすべてのものを達成するものではありません。スペルチェックや提案はうまくいきますが、既に存在する単語をクリックするか、タッチスクリーンインターフェースでは動作しない単語に触れます。

私はMSDNのRaw Input APIを読んでいましたが、それはうまくいくと思っていましたが、私が雇った開発者は、RAW入力のスコープはフォーカスが当てられているウィンドウでしかないので、私は努力をすることを検討していますが、努力する前に2番目の第3の第4の視点を求めました。

MSDNリファレンス:http://msdn.microsoft.com/en-us/library/ff468896%28v=VS.85%29.aspx

希望の情報は、質問から離れて取ることはありませんすべてのバックグラウンド。あなたの洞察力を賞賛してください。

よろしく、

ジョン

答えて

2

はい、彼は正しいです。 RawInputメッセージ(WM_INPUT)はフォーカスされたウィンドウに対してのみ生成されます。おそらくあなたは何とかそれを回避することができますが、これは主要な問題ではありません。それの名前は、生のマウスデータを言うよう

RawInputは本当に、あなたに与えます。このデータは相対的なマウス移動またはマウス・デルタ・データのみです。マウスが画面の端に達すると、メッセージに値が入力されますが、最も重要なことはポインタの弾道(ポインター弾道の説明については、http://msdn.microsoft.com/en-us/windows/hardware/gg463319を参照してください)です。これにより、実際のカーソル位置を決定することはかなり不可能になります。

これですべての動作をシミュレートし、カーソルの位置をシミュレートしようとしましたが、ポインター弾道は異なるバージョンのウィンドウでは同じではありません。 XPはVistaとは違った振る舞いをしており、Windows 7では再び公式を変更したと思う。

APIには、相対的なデータの代わりに位置情報を与えるデバイスがあることが示唆されているが、これは画面に触れることさえありません(これは恐らくドライバーに依存します)、標準のマウスではうまく動作しません。

関連する問題