アプリにフォーカスがないJavaのイベントリスナー?(グローバルキー押下検出)

StackOverflow https://stackoverflow.com/questions/800747

質問

しばらく探していましたが、Java だけを使ってこれは不可能だと誰もが考えているようですので、SO を試してみます ;)

別の無関係なアプリケーションがウィンドウ フォーカスを持っているときに、私の Java アプリケーションがイベント (特に主要なイベント) をリッスンする方法はありますか?私の状況では、Java アプリケーションにフォーカスがないにもかかわらず、ユーザーがキーボードの「一時停止」キーを押したことを検出しようとしています。

唯一の方法は、C コードを記述して JNI を使用することだと言っている人もいます。誰かがそれを回避する方法を知っているかどうか知りたいですか?そうでない場合は、少なくとも c/JNI に関する非常に優れたチュートリアルはありますか?

ありがとう

役に立ちましたか?

解決

それはできないと私は理解しています。基本レベルでは、JVM は受信した O/S イベントに対してのみイベントを生成し、フォーカスがある場合にのみ O/S 入力イベントを受信します。

きっとあなたは できた JNI を使用して O/S をトリガーし、すべての入力に対してイベントを生成しますが、これは O/S に大きく依存します。

他のヒント

私が見つけた最良の答えは次のとおりです。

「ネイティブキーボードとマウスのコントロールを処理するライブラリがあります。https://github.com/kwhat/jnativehook) "

それを回避する方法もわかりません。私は見つけました Java フォーラムのこのリンク JNI をセットアップしてグローバル キーボード ハンドラーを作成する方法の良い例を示します (ここに追加するには多すぎます)。これは少し古い (2005 年) ですが、この例は始めるのに十分な詳細を示しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top