19

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

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

いくつかのCコードを記述してJNIを使​​用するのが唯一の方法であると言う人がいると聞きました。誰かがそれを回避する方法を知っているかどうかだけ興味がありますか?または、そうでない場合は、少なくともc / JNIに関する本当に素晴らしいチュートリアルですか?

ありがとう

4

3 に答える 3

16

これが私が見つけた最良の答えです:

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

于 2011-05-30T08:05:36.697 に答える
11

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

JNIを使​​用してO/Sをトリガーし、すべての入力のイベントを生成できると確信していますが、それはO/Sに大きく依存します。

于 2009-04-29T04:42:27.517 に答える
2

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

于 2009-04-29T14:24:02.190 に答える