JNativeHook は、Java のグローバル キーボードおよびマウス リスナーを提供するライブラリです。これにより、純粋な Java を使用した場合には不可能なグローバル ショートカットやマウスの動きをリッスンできるようになります。このタスクを達成するために、JNativeHook は Java のネイティブ インターフェイスを通じてプラットフォームに依存するネイティブ コードを利用して、低レベルのシステム全体のフックを作成し、それらのイベントをアプリケーションに配信します。
次のイベントは、それぞれのリスナーを介して利用できます。
このライブラリには、グローバル イベント リスナーに加えて、ネイティブ イベントをネイティブ オペレーティング システムにポストバックする機能もあります。
JNativeHook は、GNU General Public License の拡張版である GNU Lesser General Public License の対象となり、追加の頒布権が付与されます。私の理解では、同じバイナリ インターフェイスを備えた外部ライブラリである限り、このライブラリを独自の (クローズド ソース) プロジェクトで使用することができます。 LGPL の利用規約に基づいて変更が利用可能にされている限り、独自のニーズを満たすためにこのライブラリのソース コードを変更することができます。ライセンスの互換性に関する追加の質問や懸念がある場合は、公認の弁護士にご相談ください。
JNativeHook のバイナリ配布は、プロジェクト ページのリリース セクションにあります。 Maven ユーザーは<groupId>com.github.kwhat</groupId>
と<artifactId>jnativehook</artifactId>
を使用して、このライブラリを自動的に含めることができます。夜間ビルドは Maven スナップショット リポジトリにあります。
このライブラリが役立つと思われた場合は、寄付を検討してください。
グラフィカルなサンプル アプリケーションは、利用可能なすべてのネイティブ イベントの生の出力をリアルタイムにデモンストレーションするために存在します。アプリケーションを実行するには、提供された jar ファイルを実行するだけです。ソース コードは src/main/java/com/github/kwhat/jnativehook/example/NativeHookDemo.java で入手できます。
最新のソース コードとドキュメントは https://github.com/kwhat/jnativehook/ で入手できます。