java中的系统覆盖Keylistener
有没有一种方法可以在Java中创建一个在程序窗口之外工作的keylistener?我希望它一直运行,如果您按下某个按钮/组合,它将执行一些代码行,无论您在哪个窗口。java中的系统覆盖Keylistener,java,focus,overlay,keylistener,Java,Focus,Overlay,Keylistener,有没有一种方法可以在Java中创建一个在程序窗口之外工作的keylistener?我希望它一直运行,如果您按下某个按钮/组合,它将执行一些代码行,无论您在哪个窗口。 Java有这种能力吗?以防万一,我在很久以前发现了一些东西,它让我再次思考这个问题: 是一个库,允许您使用Java侦听系统范围的keyevents 下面是他们的一些示例,用于实现一个简单的密钥侦听器: import org.jnativehook.GlobalScreen; import org.jnativehook.Native
Java有这种能力吗?以防万一,我在很久以前发现了一些东西,它让我再次思考这个问题: 是一个库,允许您使用Java侦听系统范围的keyevents 下面是他们的一些示例,用于实现一个简单的密钥侦听器:
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
public class GlobalKeyListenerExample implements NativeKeyListener {
public void nativeKeyPressed(NativeKeyEvent e) {
System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
public static void main(String[] args) {
try {
GlobalScreen.registerNativeHook();
}
catch (NativeHookException ex) {
System.exit(1);
}
GlobalScreen.addNativeKeyListener(new GlobalKeyListenerExample());
}
}
不,如果不使用一些对本机代码(如JNI或JNA)的访问,就无法使用核心Java实现这一点。对于我自己,我会使用为此而构建的实用程序,例如针对Windows平台的AutoIt if。如果需要的话,这甚至可以与使用套接字的Java程序相结合,事实上我已经做到了。我猜是这样的。我肯定会尝试自动编程的方法,因为它听起来不像本机编程那么复杂。谢谢。