Page 1 sur 1

Clique aléatoire dans une zone

Posté : 28 juin 2018, 20:20
par Piggy
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.

Re: Clique aléatoire dans une zone

Posté : 28 juin 2018, 23:20
par Onissius
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.

Sécuriser la macro :

Posté : 28 juin 2018, 23:58
par Onissius
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.

Re: Clique aléatoire dans une zone

Posté : 11 juil. 2018, 19:55
par Onissius
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.