javadev1
Messages postés7Date d'inscriptionvendredi 28 septembre 2007StatutMembreDernière intervention27 février 2008
-
26 nov. 2007 à 11:14
Utilisateur anonyme -
29 nov. 2007 à 13:22
salut
je suis débutant en java, ça fait un bon moment que je cherche le moyen de récupérer les touches saisis par l'utilisateur depuis le démarrage d'un système d'exploitation. j'ai déjà trouvé une source écrite en vb mais je sais pas comment on peut le faire en java. je sais comment récupérer les touches sous linux, je me demande s'il y a un code java portable valable pour tous les systèmes d'exploitation. vous comprenez surement ce que j'ai en téte !
j'aimerai trouver le moyen de le faire en java que ce soit sous windows et surtout sous linux. si vous connaissez la réponde n'hésitez pas à la communiquer je vous promets que je vais rester sage.
Utilise l'interface KeyListener. Implémente ses méthodes. Place ton propre KeyListener sur le composant qui reçoit les événements liés au clavier. Va voir dans le package java.awt.event.
Par exemple, tu peux faire :
class Test{
public static void main(String[] args){
Frame maFenetre = new Frame("ma fenetre de test");
maFenetre.setSize(100,100);
maFenetre.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent ke){
System.out.println("touche : "+ke.getKeyChar());
}
});
maFenetre.setVisible(true);
}
}
Apprends à regarder dans l'API Java : http://java.sun.com/javase/6/docs/api/ Java est un langage portable donc c'est presque un pléonasme de dire "un code java portable valable pour tous les systèmes d'exploitations"; le cas où certains comportements sont propres à chaque système en Java est plutôt exceptionnel.
Encore une fois, je le dis tout le temps, tant pis, évite les fautes d'orthographe.
Enfin, ce que tu essaies de faire, ça s'appelle un key logger. Il y a plein d'exemples sur internet. Je ne crois pas que faire un key logger soit très sage. Si tu fais ça, c'est pour t'en servir. Pour info, ça m'étonnerait que tu trouves un moyen de placer ton key logger sur une machine distante sous Linux et que tu puisses le lancer.
De plus, il faut que tu arrives à enregistrer les frappes à l'écran sans consommer les événements, sinon c'est pas discret du tout. Sous windows, tu peux utiliser un keyboard hook en passant par les DLL. Tu peux détecter le système d'exploitation et utiliser des programmes compilés, écrire un keyboard hook en C, le lancer depuis ton programme Java.
Tu peux aussi utiliser un GlassPane je crois et forwarder les événements. C'est discret, invisible. Si tu étends le GlassPane sur tout l'écran, tu captes tout. Par contre, pour le forward, je ne sais pas comment faire.