首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用KeyLoggers

在Java中使用KeyLoggers
EN

Stack Overflow用户
提问于 2015-07-09 04:31:10
回答 1查看 998关注 0票数 0

我正在尝试使用Jnative hook.I在java中实现按键记录器,我能够记录每个按键movement.This是我到目前为止所能得到的输出。

当我尝试输入"facebook“时,它是这样记录的。

代码语言:javascript
复制
 f
 a
 c
 e
 b
 o
 o
 k

但我希望它能像其他键盘记录器一样打印一个单词。这意味着当我输入像facebook.it这样的东西时,应该将其记录为"facebook“,而不是像记录每个键盘字符一样。

下面是我的代码:

代码语言:javascript
复制
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());

}
}
EN

回答 1

Stack Overflow用户

发布于 2015-07-09 23:01:36

将字符存储在String中,每当您遇到enterspacebar被按下时,只需打印String,请确保重新初始化String

代码语言:javascript
复制
   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="";
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31303094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档