2011-01-05 7 views

答えて

3

これは、あなたが望むことを行う可能性があります。このコードはCtr-Fキーストロークをチェックしていることに注意してください。このコードを使用して、アプリケーション内の何かから検索ダイアログを開きます。私はかなりアプリが焦点を持っている必要があることを確信しています。何かを試してみてください...

AWTEventListener listener = new AWTEventListener() { 
    @Override 
    public void eventDispatched(AWTEvent event) { 
    try { 
     KeyEvent evt = (KeyEvent)event; 
     if(evt.getID() == KeyEvent.KEY_PRESSED && evt.getModifiers() == KeyEvent.CTRL_MASK && evt.getKeyCode() == KeyEvent.VK_F) { 

     } 
    } 
    catch(Exception e) { 
     e.printStackTrace(); 
    } 
    } 
}; 

      Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.KEY_EVENT_MASK); 

EDIT:あなたが欲しいものを理解していると思います。基本的には、アプリケーションにフォーカスがない場合。そうであれば、ネイティブAPI(JNI)を使用してOSイベントにフックする必要があるかもしれませんが、特定のOSに強制します。

+0

悲しい。私はいくつかのプラットフォームに依存しない方法があることを望んだ:( – Rogach

+0

以下のaltanisが提供するリンクを確認してください。それはJavaにない理由について少し議論しています。それが本当か偽であるかを知るために十分なOSXプログラミングを行っていない... – Merky

3

Thisが役に立ちます。 Windows/Linux/Macで動作するライブラリが1つあるかどうかはわかりません。 Windowsの場合、ネイティブコードを使用してキーボードフックを作成する外部ライブラリが必要です。私は他のOSでそれをどうやって行うのか分かりません。

関連する問題