Clique aléatoire dans une zone

Postez ici si vous avez des difficultés a comprendre une commande, ou a créer une macro.
Répondre
Piggy
Messages : 1
Enregistré le : 28 juin 2018, 20:06

Clique aléatoire dans une zone

Message par Piggy » 28 juin 2018, 20:20

Je viens de commencer à faire des macros avec Super Macro et je trouve ça génial. Mais je laque (manque) encore de connaissances cruciale pour faire des macros... J'ai passé mes deux dernières journées à regarder le HTML help sur Super Macro. Lire le forum et regarder des tutoriels mais je n'arrive toujours pas à faire ce que je voudrais faire. Quelle serait la méthode la plus simple pour faire clicker (cliquer) ma souris au hasard dans une zone spécifique ? Genre dans une zone de X1 Y1 à X2 Y2. Merci de votre patience et votre réponse! :D

EDIT par Onissius : Évite les anglicisme si possible, ça ne me pose pas de problèmes, ça peut en poser à des gens qui parlent moins bien Anglais et qui voudraient te répondre.

Avatar du membre
Onissius
Messages : 762
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Re: Clique aléatoire dans une zone

Message par Onissius » 28 juin 2018, 23:20

Pour commencer, on va utiliser quatre variable X1, X2, Y1 et Y2 pour définir la zone de l'écran où on va cliquer.
Pour éviter les erreurs on peut rajouter un test pour êtres sûre que X2 et Y2 sont supérieur à X1 et Y1. Mais c'est pas obligatoire, on verra ça plus loin.
Dans mon exemple je vais utiliser comme valeurs :
Variable <X1>;10;Numerique;
Variable <X2>;100;Numerique;
Variable <Y1>;10;Numerique;
Variable <Y2>;100;Numerique;
On a donc une zone de clique qui va de (10,10) vers (100,100). On veut un point qui va de (X1,Y1) vers (X2,Y1). On va utiliser pour ça la variable X0. La distance X1 vers X2 est égale à 90 (X2-X1).
Variable <X1>;10;Numerique;
Variable <X2>;100;Numerique;
Variable <Y1>;10;Numerique;
Variable <Y2>;100;Numerique;
Variable <X0>;0;Numerique;
Commentaire Calcul de X
Fonction <X0>;Hasard;Nombre;<X0>;
Fonction <X0>;Hasard;Nombre;
Calcul évolué <X0>=<X0>+<X1>
On fait la même chose avec Y :
Variable <X1>;10;Numerique;
Variable <X2>;100;Numerique;
Variable <Y1>;10;Numerique;
Variable <Y2>;100;Numerique;
Variable <X0>;0;Numerique;
Variable <Y0>;0;Numerique;
Commentaire Calcul de X
Calcul évolué <X0>=<X2>-<X1>
Fonction <X0>;Hasard;Nombre;
Calcul évolué <X0>=<X0>+<X1>
Commentaire Calcul de Y
Calcul évolué <Y0>=<Y2>-<Y1>
Fonction <Y0>;Hasard;Nombre;<Y0>;
Calcul évolué <Y0>=<Y0>+<Y1>
Maintenant on à nos valeur, il nous reste à les utiliser pour le déplacement de la souris. J'ai mis un déplacement indirect, exécute la macro (F9) plusieurs fois, tu va voir la souris bouger aléatoirement.
Variable <X1>;10;Numerique;
Variable <X2>;100;Numerique;
Variable <Y1>;10;Numerique;
Variable <Y2>;100;Numerique;
Variable <X0>;0;Numerique;
Variable <Y0>;0;Numerique;
Commentaire Calcul de X
Calcul évolué <X0>=<X2>-<X1>
Fonction <X0>;Hasard;Nombre;<X0>;
Calcul évolué <X0>=<X0>+<X1>
Commentaire Calcul de Y
Calcul évolué <Y0>=<Y2>-<Y1>
Fonction <Y0>;Hasard;Nombre;<Y0>;
Calcul évolué <Y0>=<Y0>+<Y1>
Commentaire Déplacement de la souris
Move Mouse <X0>;<Y0>;Indirect;
En fin de macro, je te laisse changer le déplacement en déplacement direct Move Mouse <X0>;<Y0>;Direct; et ajouter le clique.
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

Avatar du membre
Onissius
Messages : 762
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Sécuriser la macro :

Message par Onissius » 28 juin 2018, 23:58

On peut ajouter une vérification juste après les déclarations des variables. Pour s'assurer que X2 et Y2 sont effectivement plus grand que X1 et Y1. Si ça n'est pas le cas tu ajouter un examine (if...then...else...). et si c'est pas le cas, ta macro peu ajouter un message d'erreur et aller à la fin de la macro, ou l’arrête.

C'est une autre histoire, qu'on verra peut êtres plus tard si tu veux l'utiliser.
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

Avatar du membre
Onissius
Messages : 762
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Re: Clique aléatoire dans une zone

Message par Onissius » 11 juil. 2018, 19:55

Admettons qu'on veuille tirer un chiffre de 10 à 100.
La différence est de 90 (soit 100-10), donc on fait un tirage de 0 à 90 puis on rajoute 10 au résultat.
Comme ça, on obtient un chiffre qui va de 10 à 100.
On utilise la même méthode pour X et pour Y.
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

Répondre