2012-06-07 2 views
-1

Я пытаюсь создать простую программу Java, которая реализует KeyListener.Как я могу создать консольное приложение, которое реализует KeyListener?

Я хочу постоянно запускать свою программу, пока не отменяю ее или не выполняю определенное условие. Что я хотел сделать, так это после того, как я запустил программу, какие бы клавиши не нажали, она будет сохранена в файле out.txt.

public class StoreInFile implements KeyListener{ 
    public static void main(String[] args) { 
    while(true){ 
    // **What should i do here such that it will call the keypressed event**. 
    } 
    } 
    @Override 
    public void keyPressed(KeyEvent e) { 
     try{ 
       FileWriter fstream = new FileWriter("d:\\out.txt",true); 
       BufferedWriter out = new BufferedWriter(fstream); 
       out.write(e.getKeyChar()); 
       out.close(); 
       }catch (Exception ex){ 
       System.err.println("Error: " + ex.getMessage()); 
       } 
    } 

} 

Можно ли достичь в консоли приложения? В основном я хочу создать KeyLogger или KeyCatcher. Как я могу это достичь? Спасибо заранее.

ответ

1

Вы можете попробовать рамки с открытым исходным кодом, jLine: jLine

Но это не 100% java.Some родной реализации также есть.

+0

Прохладная библиотека. Спасибо за ссылку. – AlexR

2

Для входа на основе линии, т.е. «типы пользователей текста, пользователь нажимает введите, ваша программа получает то, что напечатал пользователь», то Scanner класс должен делать только штрафом.

Для ввода одного символа, такого как «пользователь нажимает клавишу x, ваша программа получает уведомление». вам нужно будет изучить библиотеки, такие как CHARVA или Java Curses.

+0

Если я использую класс сканера для чтения входов, он будет хранить нажатые только тогда, когда мое окно консоли active.What если открыт браузер и введите URL, он будет хранить URL ключи также в файле? – vikiiii

+0

Нет. Похоже, что вы после * keylogger * или * key catchcher *. Вот один проект, ориентированный на Linux: http://sourceforge.net/projects/jxgrabkey, и вот один проект, ориентированный на окна: http://melloware.com/products/jintellitype/index.html – aioobe

+0

+1 Привет, спасибо за понимание моего вопроса. Я хочу это на windows.Can, вы немного меня ведете? Является ли JINTELLITYPE API для JAVA? – vikiiii

Смежные вопросы