2011-01-05 96 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); 

編輯:我想我明白你想要什麼。基本上當應用程序沒有焦點。如果是這樣,那麼你可能必須使用本地API(JNI)掛鉤到OS事件中,但是這會強制你到特定的操作系統...

+0

傷心。我希望會有一些平臺無關的方式:( – Rogach 2011-01-05 21:20:09

+0

請確保檢查鏈接,altanis提供下面。有一點關於(可能)爲什麼它不是在Java中的討論。關於也許OSX沒有。沒有做足夠的OSX編程來知道這是真的還是假的...... – Merky 2011-01-05 21:29:04

3

This可能會有用。我不確定是否有一個適用於Windows/Linux/Mac的庫。對於Windows,您將需要一些使用本機代碼創建鍵盤掛鉤的外部庫。我不知道如何在其他操作系統上執行此操作。