IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Probleme Robot MouseMove


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Par défaut Probleme Robot MouseMove
    Bonjour,

    J'aurai besoins d'un petit coup de pouce car je suis bloqué avec robot mousemove.


    J'arrive a utilise le robot pour déplace mon curseur en fonction de la position de celui_ci sans aucun problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       point = MouseInfo.getPointerInfo().getLocation();
                  robot.mouseMove(point.x + correctionX,  point.y + correctionY);
                  Thread.sleep(times);
    correctionX, correctionY et Time sont des variables que je je recupere dans un Json.

    Ca permet de change les variable une fois l'applications compile en Jar.


    Voici mon probleme,

    Je souhaiterai pouvoir faire la meme chose mais avec une liste de variable dans un tableau pour que le curseur accélère et ralentisse en fonction des valeurs choisis

    Mes variables sont declare comme ceci actuellement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     int correctionX = 0;
                int correctionY = 0;
                int times = 0;

    Lorsque que les passe comme ceci :

    [CODE]int [] correctionX = {0,0,0,0,0,0} (pour avoir 6 valeur)/CODE] idem pour les autres, que je modifie mon Json en tableau egalemen


    je me retrouve avec un probleme au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Thread.sleep(1);
                  point = MouseInfo.getPointerInfo().getLocation();
                  robot.mouseMove(point.x + correctionX,  point.y + correctionY);    ----------> erreur ici:  Operator '+' cannot be applied to 'int', 'int[]'
                  Thread.sleep(times);

    J'ai compris que c'est du au faite que j'ai une variable en int et une autre en int[] et je ne vois pas comment solutionne le probleme.


    Cordialement

    Fred

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Il te faut créer une variable d'indice pour accéder aux variable contenues dans le tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int monindicequisincrementejesaispascomment = 0;
    Puis remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    robot.mouseMove(point.x + correctionX[monindicequisincrementejesaispascomment],  point.y + correctionY[monindicequisincrementejesaispascomment]);
    quelque part il faudra incrementer la variable monindicequisincrementejesaispascomment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monindicequisincrementejesaispascomment++;
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Par défaut
    Bonjour,

    merci de m'avoir repondu.


    J'ai essaye d'implante ce que vous m'avez proposé, ca me pose un soucis a ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    robot.mouseMove(point.x + correctionX[monindicequisincrementejesaispascomment],  point.y + correctionY[monindicequisincrementejesaispascomment]);
    j'ai le message d'erreur suivant : array type expected; found: 'int' java


    J'ai vue que ce matin je n'es pas précise que j'ai 4 choix de correctionx possible via un SWITCH.

    voici comment je choisi le mode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    ................
     Config currentConfig1 = ConfigManager1.getInstance1().getCurrentConfig();
     
            executorService.submit(() -> {
              try {
                Robot robot  = new Robot();
                Point point;
     
                int correctionX = 0;
                int correctionY = 0;
                int rateoff = 0;
                int ntime = 0;
     
     
     
                while (Main.enable && Main.leftclick) {
                  switch (Main.choix) {
     
     
                    case CHOIX1:
                      if (Main.rightClick) {
     
                        correctionY = currentConfig1.x1;
                        rateoff = currentConfig1.rateoff;
                        ntime = currentConfig1.ntime;
     
                      } else {
     
                        correctionY = currentConfig1.defaultcorrectionY;
                        rateoff = currentConfig1.defaultrateoff;
     
                      }
     
                      break;
                    case CHOIX2:
                      if (Main.rightClick) {
     
                        correctionY = currentConfig1.x2;
                        rateoff = currentConfig1.rateoff;
                        ntime = currentConfig1.ntime;
     
                      } else {
     
                        correctionY = currentConfig1.defaultcorrectionY;
                        rateoff = currentConfig1.defaultrateoff;
     
                      }
     
                      break;
                    case CHOIX3:
                      if (Main.rightClick) {
     
                        correctionY = currentConfig1.x3;
                        rateoff = currentConfig1.rateoff;
                        ntime = currentConfig1.ntime;
     
                      } else {
     
                        correctionY = currentConfig1.defaultcorrectionY;
                        rateoff = currentConfig1.defaultrateoff;
     
                      }
     
                      break;
                    case CHOIX4:
                      if (Main.rightClick) {
     
                        correctionY = currentConfig1.x4;
                        rateoff = currentConfig1.rateoff;
                        ntime = currentConfig1.ntime;
     
                      } else {
     
                        correctionY = currentConfig1.defaultcorrectionY;
                        rateoff = currentConfig1.defaultrateoff;
     
                      }
                  }
     
                  Thread.sleep(1);
                  point = MouseInfo.getPointerInfo().getLocation();
                  robot.mouseMove(point.x + correctionX,  point.y + correctionY);
                  Thread.sleep(rateoffire,ntime);
     
                }
              } catch (Exception e1) {
                e1.printStackTrace();
              }
            });
    ........
    mon fichier config qui fait la liaison avec le json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class Config {  // Ne jamais modifie cette class
     
     
        String name = "Default";
     
     
    int defaultcorrectionY = 0;
    int defaultrateoff = 10;
     
     
     
        int rateoff = 0;
        int ntime = 0;
     
     
        int x1 = 0;
     
        int x2 = 0;
     
        int x3 = 0;
     
        int x4 = 0;
     
    }
    et pour finir un de mes fichiers json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    {
      "name": "TEST",
     
     
      "rateoff": 10, "ntime": 0,   //temps milliseconde et nanoseconde
     
     
      "x1": 10,     ----> ici je souhaiterai pouvoir avoir ceci : {10,12,15,8,4,18} Par exemple 
     
      "x2": 15,   
     
      "x3": 20,  
     
      "x4": 30 
     
    }


    Cordialement


    Fred

  4. #4
    Membre confirmé
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Par défaut
    Bonjour,

    Je bloque toujours sur la meme erreur.

    J.ai essaye de tourne la chose dans tout les sens

    Mais je doit rate quelque chose.

    Merci d.avance pour le coup de pouces


    Fred

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    J.ai essaye de tourne la chose dans tout les sens
    En effet ^^ Maintenant tu parles de json etc etc ... ce qui entre nous ne fait qu'embrouiller l'histoire.

    Si tu déclare correctionX en int et pas en une array de int forcement ca va coincer... il faudrait donc les déclarer sous forme de tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int correctionX[]=...;
    int correctionY[]=...;
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Par défaut
    Bonjour,


    Ca c'est ce que j'avais tenté de faire avant de venir demande de l'aide.

    Quand je passe mes "correction X et correctionY comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                int correctionX[]= {0,0,0,0,0,0};
                int correctionY[]  = {0,0,0,0,0,0};
                int rateoffire = 0;
                int ntime = 0;
    et bien entendu je fait de meme pour mes fichier config et json. A ce niveau la tout est bon mais je me retrouve avec une autre erreur du coup.



    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          ...........
                 Thread.sleep(1);
                 point = MouseInfo.getPointerInfo().getLocation();
                 robot.mouseMove (point.x + correctionX,  point.y + correctionY);   ----->  Operator '+' cannot be applied to 'int', 'int[]
                 Thread.sleep(rateoffire,ntime);
                 ..........
    Merci


    Fred

Discussions similaires

  1. Probleme Robot de screenshot
    Par Zhyte dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/09/2017, 21h20
  2. [Probleme]Robot en Perl
    Par kzay83 dans le forum Web
    Réponses: 2
    Dernier message: 14/01/2010, 15h03
  3. [Débutant]Applet java et class robot:mousemove(x,y);
    Par mimomimo dans le forum Applets
    Réponses: 4
    Dernier message: 17/04/2009, 17h30
  4. probleme de robots ou autre qui "pompe" mes fichiers
    Par silvain dans le forum Serveurs (Apache, IIS,...)
    Réponses: 5
    Dernier message: 24/11/2006, 13h48
  5. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo