所以我目前正在编写一个程序来计算我按下的特定键。尽管我希望程序完全在后台运行(没有打开的窗口或任务栏中的标志),但计数工作正常。
那么Java中有没有办法让一个进程完全在后台运行呢?我目前正在使用 JFrame
进行计数。
最佳答案
您可以使用 JNativeHook 这里是一个打印每个键和按下的键数的示例,您可以根据您的需要修改它:-
import org.jnativehook.GlobalScreen;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
public class Main implements NativeKeyListener
{
public static void main(String[] args)
{
try
{
GlobalScreen.registerNativeHook();
}
catch(Exception e)
{
e.printStackTrace();
}
GlobalScreen.getInstance().addNativeKeyListener(new Main());
}
private int count;
@Override
public void nativeKeyPressed(NativeKeyEvent e)
{
System.out.println("Pressed " + NativeKeyEvent.getKeyText(e.getKeyCode()));
count++;
System.out.println(count);
}
@Override
public void nativeKeyReleased(NativeKeyEvent e)
{
}
@Override
public void nativeKeyTyped(NativeKeyEvent e)
{
}
}
如果您不知道如何导入 JNativeHook 库,那么 How to install JNativeHook Library?
关于Java:如何在后台记录击键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36662855/