2

イベントがオペレーティング システムに伝播されないように、Java でシステム キーを傍受する方法はありますか? Ctrl+Alt+Del またはその他のセキュリティ関連の組み合わせは問題ではありません。主な問題は、たとえば Windows キーです。

問題のプログラムは、独自のプロトコルを介して一部のリモート操作を実行するフルスクリーン アプリケーション用です。現在、私の唯一の考えは、JNI を介してこれを解決することですが、Windows の解決策は単純なようですが、Linux と MAC OS X についてはわかりません。

私はやや標準的なソリューションを好みます.Javaゲームなどには何かがあるかもしれません.

4

2 に答える 2

1

Java はオペレーティング システム (OS) の後にキー ストロークを処理するため、Java はキー ストロークを「傍受」できません。ただし、キーストロークをインターセプトする C/C++ で OS 固有のものをコーディングし、JNI を使用して Java で呼び出すことができます。

于 2010-08-03T20:09:12.407 に答える
0

これは Java 5で修正されたようですので、試してみてください。どうやら、Java API の KeyEvent クラスは、2 つの Microsoft Windows キーボード固有のイベント、 VK_WINDOWS (左右のウィンキー用) とVK_CONTEXT_MENU (コンテキスト メニュー キー用) を公開しているようです。

KeyListener を実装することでこれらのイベントをトラップすることは十分に可能ですが、Winkey イベントだけをキャプチャしようとすると、Java が処理する前に、まず OS のイベント ハンドラをトリップすることになることに注意してください。

于 2010-08-03T21:13:20.747 に答える