capturar teclado

Iniciado por sapito169, 9 Enero 2009, 07:11 AM

0 Miembros y 1 Visitante están viendo este tema.

sapito169

quisiera saber como capturar los eventos del teclado

por ejemplo al presionar escape se sierre la ventana
o al presionar ctrl+m gane el foco un area de texto

Casidiablo

Hola, aquí tienes algunos ejemplos:

http://casidiablo.net/codigo-guis-en-java-eventos-de-mouse-y-teclado/

La idea de todo es implementar la interfaz KeyListener en la clase que quieres que maneje eventos del teclado.

Un saludo.

sapito169

no sirve cuando tu Jframe esta cubiero por un monton de paneles

cyberserver

#3
Lo que quiere hacer sapito 169 es un  tipo Keylogger.......

Estaria interesante saber como funciona en Java!!! :rolleyes:

Keylogger por software. Contrariamente a las creencias comunes, un keylogger por software es simple de escribir, con un conocimiento de trabajo de C o de C++ y un conocimiento de los API proporcionados por el sistema operativo del objetivo. Los keyloggers del software bajan en las categorías siguientes:

   1. Basado en núcleo: Este método es el más difícil de escribir, y combatir. Tales keyloggers residen en el nivel del núcleo y son así prácticamente invisibles. Derriban el núcleo del OS y tienen casi siempre el acceso autorizado al hardware que los hace de gran alcance. Un keylogger que usa este método puede actuar como conductor del teclado por ejemplo, y accede así a cualquier información mecanografiada en el teclado mientras que va al sistema operativo.
   2. Enganchados: Tales keyloggers enganchan el teclado con las funciones proporcionadas por el sistema operativo. El sistema operativo los activa en cualquier momento en que se presiona una tecla y realiza el registro.
   3. Métodos creativos: Aquí el programador utiliza funciones como GetAsyncKeyState, GetForegroundWindow, etc. Éstos son los más fáciles de escribir, pero como requieren la revisión el estado de cada tecla varias veces por segundo, pueden causar un aumento sensible en uso de la CPU y pueden ocasionalmente dejar escapar algunas pulsaciones de teclas






-Ramc-

La única forma de hacer un keylogger en java es con JNI, si eso es lo que quieres.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

joelmanx

hola a todos, seria interesante que suban un ejemplo de cpatura de eventos de teclado del SO, como lo decian.

Es posible ligar esos eventos a funciones?, para hacer visible o invisible una aplicacion swing?.
proyectos libres que desarrollo, si quieres colaborar, únete y hagamos un buen aporte.

http://guitarragnu.sourceforge.net/ (Software Educativo)
http://evsigmapserverj.sourceforge.net/ ( Software GIS, SIG, Mapserver)

Debci

Si revisan el post con sources interesantes es probable que encuentren el keylogger que el compañero LEYER realizo con JNI.

Saludos

1mpuls0

Hola sapito169

buscas algo como esto?  :(

Código (java) [Seleccionar]

import javax.swing.*;
import java.awt.event.*;

public class PanelDeTeclado extends JPanel implements KeyListener, MouseListener {

    public PanelDeTeclado(){
        this.addMouseListener(this);
        this.addKeyListener(this);
    }

    @Override
    public boolean isFocusable(){
        return true;
    }

    public void mousePressed( MouseEvent e ) {}
    public void mouseReleased( MouseEvent e ) {}
    public void mouseClicked( MouseEvent e ) {}

    public void mouseEntered( MouseEvent e ) {
        this.requestFocus();
    }

    public void mouseExited( MouseEvent e ) {}

    public void keyReleased( KeyEvent e ) {
    }

    public void keyTyped( KeyEvent e ) {
    }

    public void keyPressed( KeyEvent e ) {
        System.out.println("Usted ha presionado la tecla: "+e.getKeyText(e.getKeyCode()));
    }

    public static void main( String [] args ){
        JFrame f = new JFrame();
        f.getContentPane().add(new PanelDeTeclado());
        f.setSize(400,300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}


un saludo
abc