【问题标题】:Converting Key Text To Key Character将关键文本转换为关键字符
【发布时间】:2015-04-20 10:03:10
【问题描述】:

我有一个全局键盘记录器,可以在控制台上打印出按下的键。您可以找到代码here

当我按常规键字母或数字时,它会打印键字符,但像 ENTERSPACE 等“特殊”键会打印它们的名称而不是键字符。

例如,我得到ENTER,但我真的想要一个换行符,例如\nSystem.lineSeparator()。除了手动检查和转换所有内容之外,有没有办法让所有正确的关键字符来编写类似于文本编辑器生成结果的日志?

我尝试使用NativeKeyEvent 类中的getKeyChar(),但它只显示?

【问题讨论】:

    标签: java keylogger


    【解决方案1】:

    我的建议是编写您自己的转换器,取自jnativehook 的源代码。查看您提供的链接中的代码,有一个调用

    NativeKeyEvent.getKeyText(int keyCode);.

    因此,在我看来,最简单的方法是编写类似的代码或重用该代码,更改诸如 VC_SPACE 之类的键的值以返回您想要的内容。我不相信有任何东西可以按照你想要的方式工作,所以这将是一个很好的折衷方案。

    注意:在您的实现中,请注意返回的关键代码(例如 VC_ENTER)可能是特定于平台的,但这实际上取决于您的需求 - 如果您想要的只是一个简单的键盘记录器。

    【讨论】:

      【解决方案2】:

      所以你想要像这样打印的普通键:a,b,c,4 和特殊的空格: , enter like \n ...

      你可以做NativeKeyEvent.getKeyText(e.getKeyCode()).replace("enter","\n"); 但你不想... 没有其他可能性...

      【讨论】:

      • 对于String类型,方法getText()未定义。
      猜你喜欢
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 2010-09-27
      • 2016-07-21
      相关资源
      最近更新 更多