2013-03-26 13 views
6

プログラムが他のプログラムからのキー入力をブロックすることは可能ですが、ユーザーの手から直接キーボードのキーを押すキー入力はできませんか?プログラムでユーザーキー入力とプログラムキー入力を区別できますか?

例:

ProgramAにはテキストフィールドがあります。

ProgramBはWindowsのオンスクリーンキーボードです。

ProgramAでテキストフィールドを選択した後、オンスクリーンキーボードプログラムで文字 'c'を押してみますが、テキストフィールドには表示されません。

しかし、キーボードから直接「c」という文字を押すと、ProgramAのテキストフィールドに表示されます。

は、私は彼らがキューイングされているか、キーイベントがどのように動作するかを知っている、と私は単純にC言語でBlockInput機能++

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646290%28v=vs.85%29.aspx

しかし、その機能ブロックのすべての入力を見てきました。

Iveはこのように入力をフィルタリングするプログラムを検出し、どのように理解できないようです。完全に明白な何かが欠けていますか?

この質問は、主にWindows 7オペレーティングシステムのC++に関するものです。

+1

お求めのプログラミング言語とOSはどちらですか? JavaとC++の両方のタグにこのような質問を表示するには、少し過度に広がっているようです。 –

+0

ホバークラフト、あなたがJavaのロボットクラスに精通していれば、あなたの助けに感謝します。 KeyPressコマンドもProgramAでブロックされます。 – user2212942

+0

キオスクプログラムの作成を検討している可能性があります。あなたはその言葉をグーグルにしましたか? –

答えて

1

入力がハードウェアからのものかどうかは決して確認できません。最も単純な例は、ソフトウェア入力によって駆動される実際のキーボードをシミュレートするカスタムドライバです。

マイクをデバイスに接続して入力フィルタリングのためのサウンド/バイブレーションを聞くことができますが、個人的なユーザーに与えられる完全なハードウェアのソリューションまたはアプリケーションを意味しますか?

+0

私のコンピュータ上のWindowsチャットアプリケーション(C++)が、私が書いた(java)プログラムからkeyPressesをどうにかブロックするのを理解しようとしていますが、キーボードで入力しているときに入力できます私の手。私はちょうどJavaのロボットクラスを抱いていただけで、なぜロボット入力を受け入れないのだろうと思っていましたが、キーボードから直接入力しました。 http://docs.oracle.com/javase/6/docs/api/java/awt/Robot.html – user2212942

関連する問題