JNativeHook API ( https://github.com/kwhat/jnativehook ) を介してマウスとキーボードのフックを登録する Java アプリケーションを Windows で実行しています。私の問題は、管理者権限を持つ外部アプリケーションによって無効になっていることです。
私は多くのデバッグを行いましたが、アプリケーションは管理者権限でのみこれを行うことができます.管理者とマウスフックでアプリケーションを連携させる必要があります. 2 つのアプリケーションが両方とも管理者権限を持っている場合、両方とも互いのフックを無効にできないことがわかりました。これは完璧ですが、私には当てはまりません。
この問題を解決する方法は 2 つしか考えられませんが、どちらも方法がわかりません。
- 管理者で Java を実行する方法を見つけます (おそらく機能しないでしょう)。
JNativeHook でメソッドを検索/作成して、フック管理者を強制します。
GlobalScreen.registerNativeHook(); GlobalScreen.addNativeMouseListener(new MouseListener()); GlobalScreen.addNativeKeyListener(new KeyListener());
MouseListener と KeyListener は、マウス イベントとキーボード イベントを処理する 2 つの異なるクラスです (問題とは関係ありませんが、入れてみようと思いました)。
外部アプリケーションの実行中に JNativeHook フックが無効にならないようにするにはどうすればよいですか?