我正在尝试使用Jnative hook.I在java中实现按键记录器,我能够记录每个按键movement.This是我到目前为止所能得到的输出。
当我尝试输入"facebook“时,它是这样记录的。
f
a
c
e
b
o
o
k但我希望它能像其他键盘记录器一样打印一个单词。这意味着当我输入像facebook.it这样的东西时,应该将其记录为"facebook“,而不是像记录每个键盘字符一样。
下面是我的代码:
public class key_logger implements NativeKeyListener {
@Override
public void nativeKeyPressed(NativeKeyEvent nativeKeyEvent) {
System.out.print(nativeKeyEvent.getKeyChar());
if(nativeKeyEvent.getKeyCode()== NativeKeyEvent.VK_ESCAPE)
{
//System.out.println("Ter");
GlobalScreen.unregisterNativeHook();
}
}
@Override
public void nativeKeyReleased(NativeKeyEvent nativeKeyEvent) {
}
@Override
public void nativeKeyTyped(NativeKeyEvent nativeKeyEvent) {
System.out.println(nativeKeyEvent.getKeyChar());
}
public static void main(String[] args)
{
try
{
GlobalScreen.registerNativeHook();
} catch (NativeHookException e) {
System.out.println("There is a problem registering with the hook");
e.printStackTrace();
System.exit(1);
}
GlobalScreen.getInstance().addNativeKeyListener(new key_logger());
}
}发布于 2015-07-09 23:01:36
将字符存储在String中,每当您遇到enter或spacebar被按下时,只需打印String,请确保重新初始化String
String string ="";
@Override
public void nativeKeyTyped(NativeKeyEvent nativeKeyEvent) {
string.append(nativeKeyEvent.getKeyChar());
if(nativeKeyEvent.getKeyCode()=='key code for enter' && nativeKeyEvent.getKeyCode()== 'key code for space'){
System.out.println(string);
string="";
}
}https://stackoverflow.com/questions/31303094
复制相似问题