2011-01-05 163 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,您将需要一些使用本机代码创建键盘挂钩的外部库。我不知道如何在其他操作系统上执行此操作。

相关问题