Java:如何在后台记录击键?

时间:2016-04-16 10:20:46

标签: java background jframe counter daemon

所以我正在编写一个程序来计算我要按的特定键。计数工作正常,但我希望程序完全在后台运行(没有打开的窗口或任务栏中的标志)。

那么在Java中有一种方法可以在后台完全运行一个进程吗?我目前正在使用JFrame来计算。

1 个答案:

答案 0 :(得分:3)

你可以在这里使用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?