2017-09-08 5 views
0

Javaのキーボード入力をブロックする方法はありますか?私はJavaコードで入力をキャッチしたいが、OSに送信されないようにする。Javaブロックキーボードのプレス

例:メモ帳が開いていて、私はうまく書けますが、キーの組み合わせを押すとjava appがその入力を受け取り、キーボードで書き込むことができなくなります。このような行動は可能ですか?

私はキープレスをキャプチャする方法を知っていますが、キーボードのブロック部分は私にとって謎です。

私はグーグルで試しましたが、解決策は見つかりませんでした。

+0

キーボード入力は最初にOSに送られ、その後、フォーカスされたアプリケーションに配布されますが、偽装する方法があるかもしれませんが、常にそれを回避する方法があります – MadProgrammer

+0

なぜこのような動作を望みますか? –

+0

NTBキーボードを誤って押すのを防ぐことができます。 –

答えて

1

JavaアプリケーションはJVMで実行されることを理解する必要があります。 JVMはオペレーティングシステムではありません。 オペレーティングシステムに属するリソースにアクセスするための

のでご方法は非常に限られています。

つまり、任意のコンソールユーザー入力を任意のの他のアプリケーションに対して「交差」できるJavaアプリケーションを作成するための一般的なクロスプラットフォームの方法はありません。

あなたはバスに座っている人 - 他のみんなのような男だと想像してみてください。あなたは仲間の乗客に向かい、パスポートなどを求める権利はありません。あなたは、他のみんなのように、バスの一人の男です。ここに同じ:Javaアプリケーションは制御他のプロセスに欠けている。

具体的にはWindowsプラットフォームについて質問しています.JNIと特定のネイティブコールを使用するオプションがあります。例えば、hereを参照してください。

したがって、一般的には不可能ですが、オペレーティングシステムによっては、たとえばJNIを使​​用するなどの方法がある可能性があります。

+0

ああ、私が聞きたくなかった答え:(私は他の質問を知っていますが、他の言語でそれを行うことは可能ですか?私の推測ではWindowsシステムリソースをより良くコントロールする必要がありますか? –

関連する問題