我用 Java 制作了一个简单的媒体播放器,但我想记录全局按键,例如 Ctrl + P 来暂停/恢复当前播放在 JFrame 没有焦点的情况下播放音乐,但由于 JVM 安全问题,这似乎是不可能的。
我遇到了JNativeHook但我只想为 Windows 实现我自己的方法。 请建议如何做以及从哪里开始?
最佳答案
尝试 JNativeHook 。下面是一个示例,展示了如何使用它来捕获全局按键:
try
{
GlobalScreen.registerNativeHook();
GlobalScreen.addNativeKeyListener(new NativeKeyListener()
{
@Override
public void nativeKeyTyped(NativeKeyEvent nativeEvent)
{
}
@Override
public void nativeKeyReleased(NativeKeyEvent nativeEvent)
{
String keyText=NativeKeyEvent.getKeyText(nativeEvent.getKeyCode());
System.out.println("User typed: "+keyText);
}
@Override
public void nativeKeyPressed(NativeKeyEvent nativeEvent)
{
}
});
}
catch (NativeHookException e)
{
e.printStackTrace();
}
如果您使用 maven,请将其添加到您的 pom.xml
中:
<dependency>
<groupId>com.1stleg</groupId>
<artifactId>jnativehook</artifactId>
<version>2.1.0</version>
</dependency>
关于java - 如何在java中捕获全局按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58902945/