java键盘记录器代码 java键盘记录器代码是什么( 七 )


下面的例子演示得到键码和字符的方法,在命令行上显示结果 。
例1 本例程演示键盘监听器后键码的用法 。
///
// KeyEvt.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyKeyListener implements KeyListener{
publicvoid keyPressed(KeyEvent evt) {
System.out.println("\n按键被按下");
【java键盘记录器代码 java键盘记录器代码是什么】showKeyEventMsg(evt);
}
publicvoid keyReleased(KeyEvent evt){ }
publicvoid keyTyped(KeyEvent evt) { }
privatevoid showKeyEventMsg(KeyEvent evt){//显示按键事件信息
//得到按键对应的整型数
int code = evt.getKeyCode();
//返回按键事件所代表的字符
char c = evt.getKeyChar();
//得到代表按键的字符串
String szText = evt.getKeyText(code);
if (code != KeyEvent.VK_UNDEFINED)
System.out.println("\n按键对应的整型数:"+code);
if (c != KeyEvent.CHAR_UNDEFINED)
System.out.println("\n与按键相联系的字符:"+c);
if (evt.isShiftDown())
System.out.println("\n按键Shift被按下");
System.out.println("\n按键本身的字符串:"+szText);
}
}
class ButtonPanel extends JPanel{
public ButtonPanel() {
//新建一个文本域组件
tf = new JTextField(20);
add(tf);
//指定用来处理该按钮事件的监听器对象为JPanel本身
myListener = new MyKeyListener();
tf.addKeyListener(myListener);
}
private JTextField tf;
private MyKeyListener myListener;
}
class ButtonFrame extends JFrame{
public ButtonFrame() {
setTitle("键盘事件示例程序");
setSize(300, 200);
setLocation(100,100);
addWindowListener(new WindowAdapter() {
publicvoid windowClosing(WindowEvent e)
{ System.exit(0);
}
});
Container ctPane = getContentPane();
ctPane.add(new ButtonPanel());
}
}
publicclass KeyEvt{
publicstaticvoid main(String[] args) {
JFrame frame = new ButtonFrame();
frame.setVisible(true);
}
}
///简要说明
程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMsg用来在标准输出设备上显示有关的键盘信息 。
在面版ButtonPanel上建立文本框并加键盘监听器 。把面版ButtonPanel放到窗口ButtonFrame中 。
用java写个键盘监听器,应该把监听器加到哪里?**********补充一下啊××××××××
如果你是想真正实现键盘记录功能,那只能用消息钩子实现,具体怎么搞你搜索一下API HOOK,原理我在下面都说过了 。早期的黑客软件都是这样实现的 。你可以到安全焦点上看看 。主要的技术有:远程线程注入、钩子、键盘消息 。
另外 , java的进程到底能不能注入很难说,所以我说应该用全局钩子 , 也就是说对所有的信息进行拦截 , 所以需要把函数写道DLL文件里实现内存的共享 。
另外其实可以投机取巧的方法实现 。比如就是空间隐藏,完全可以实现 , 但是要注意技巧 , 比如防止焦点丢失啊 , 因为这样键盘输入的东西就记不下来了~~~
怎么样~这样可以给分了吗?有问题再问啊~~
键盘记录器,估计java是不可能实现的 。。。
涉及到windows编程 。。
可以用c实现 。。。原理是这样的 。。
键盘被按下之后,会向窗口发送一个按键消息 , 这个消息传递给窗口 , 在窗口的消息循环中被处理,这个时候,如果用c语言写了一个钩子,加入窗口所在进程中 , 拦截传入的消息,从中读出按下的键是哪个就可以了 。。。

推荐阅读