Memoriser le chemin parcouru par la souris et le refaire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 608 fois - Téléchargée 16 fois

Contenu du snippet

Ce Code fait en sorte que tant que vous faites un trajet avec votre souri il l'enregistre puis refait le même trajet avec la souris.
Vous pouvez spécifier le délai et la période d'échantillonage ...

Source / Exemple :


import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Robot;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *

  • @author Scupper
  • /
public class Tracker extends Thread{ private int delai = 10000;//DEFAULT VALUE is 1 second private int delai_to_record = 10;//DEFAULT VALUE is 1 second private long current_time = 0; private Vector<Integer> Xs = new Vector<Integer>(), Ys = new Vector<Integer>(); // Here to record the positions public Tracker(int delai){ this.delai = delai; } public Tracker(){ } public int getMouseX(){ return (int) MouseInfo.getPointerInfo().getLocation().getX(); } public int getMouseY(){ return (int) MouseInfo.getPointerInfo().getLocation().getY(); } public void mouveMouseToSpecifiedPosition(int x, int y, int delai) throws AWTException{ Robot r = new Robot(); r.mouseMove(x, y); r.delay(delai); } public void recordPositions(int x, int y){ this.Xs.add(x); this.Ys.add(y); } @Override public void run(){ if(this.current_time ==0){ this.current_time = System.currentTimeMillis(); } while(System.currentTimeMillis()-this.current_time<this.delai){ this.recordPositions(this.getMouseX(), this.getMouseY()); try { Thread.sleep(this.delai_to_record); } catch (InterruptedException ex) { } } for(int i = 0; i < this.Xs.size(); i++){ try { //System.out.println("Xs : "+Xs + " Ys : "+Ys); this.mouveMouseToSpecifiedPosition(Xs.get(i), Ys.get(i), this.delai_to_record); } catch (AWTException ex) { } } public static void main(String[] args){ Tracker t = new Tracker(); t.start(); } }

A voir également

Ajouter un commentaire

Commentaires

cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
248 -
Bonjour,

Ok, l'idée est sympa. Tu aurais même pu aller plus loin en enregistrant également les clics, et créer un outils équivalent à scélenim mais plus général.
Scupper
Messages postés
28
Date d'inscription
jeudi 15 octobre 2009
Statut
Membre
Dernière intervention
12 décembre 2013
-
Merci, pour ta proposition je crois que je vais me lancer sur ce projet :D.
Franchement, ce que je voulais faire c'est commander la souris et le clavier avec la main :D et cette classe c'était juste un petit test parmi d'autres :D
Frigotz
Messages postés
1
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
9 février 2012
-
Bonjour, je suis nouveau et ce site m'interresse.
Bon, j'avoue que ma question va être un peu bête mais ce code on le met où pour ensuite l'activé ?
Merci de votre aide.
Scupper
Messages postés
28
Date d'inscription
jeudi 15 octobre 2009
Statut
Membre
Dernière intervention
12 décembre 2013
-
Bonsoir,

Faudrait juste le compiler et puis l’exécuter, pour faire ceci, je connais 3 méthodes faciles :
_ Travailler avec Netbeans: Créer un projet et copier la sources dans un fichier (qui a le même nom que la classe pour toutes les méthodes qui suivent), ensuite appuyer sur "run" dans le menu.
_ De même pour Eclipse : (personnellement je travaille avec Netbeans mais bon y a plusieurs personne qui recommande Eclipse pour les gens qui vient de débuter avec Java)
_ la troisième est un peu compliquée que les deux dernière méthodes :
+ Vous faite sous la console : cd <Chemin du dossier ou votre fichier se trouve>
+ puis dans cette console : javac nomdufichier.java
+ Enfin : java nomdufichier

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.