Action a temps random

Vous voulez de l'aide ? Postez ici :)
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Action a temps random

Post by Fresan »

Bonjour :) ,

Je n'arrive pas a faire une action avec un temps random, par exemple :

- Faire que mon clic de souris s'effectue dans un timing random entre 100 et 600ms

L'objectif étant de rendre l'éxécution du script plus réaliste, moins prévisible.

J'ai déjà posé ma question a l'IA "ChatGPT" qui m'a répondu :

Dans la fenêtre "Temps", supprimez la valeur existante du "Délai initial" et remplacez-la par une fonction "randint()" qui générera un nombre aléatoire compris entre deux valeurs.
Par exemple, si vous souhaitez un délai initial aléatoire compris entre 1 et 5 secondes, vous pouvez saisir "randint(1, 5)".


Le seul problème, je trouve pas l'onglet "Temps" dans la fenêtre pour éditer l'action et je ne peux pas écrire la fonction directement dans les paramètres d'entrée.

En vous remerciant par avance,
Jini Fresan.
Attachments
ddd.PNG
ddd.PNG (13.83 KiB) Viewed 935 times
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Action a temps random

Post by francois »

Bonjour,

C'est impressionnant que ChatGPT ait proposé cette solution.
(qui suppose une connaissance d'Actiona)

Cependant, cette solution n'est pas bonne pour 2 raisons :
La zone de saisie que propose ChatGPT n'accepte pas la saisie de fonction.
La fonction randint() - à ma connaissance - n'existe pas en Javascript.

Le plus simple est de créer une action code avant l'action que l'on veut temporiser aléatoirement .
Elle contient :

Code: Select all

delai_mini=100;
delai_maxi=600;
delai_aleatoire =delai_mini +  Math.random() * (delai_maxi -delai_mini);
Execution.pause(delai_aleatoire);
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Merci pour le retour François,

Je vais tester cela et je ferai un retour pour dire si ça fonctionne comme voulu.

Bonne journée
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

francois wrote: 19 Feb 2023, 14:23 Bonjour,

C'est impressionnant que ChatGPT ait proposé cette solution.
(qui suppose une connaissance d'Actiona)

Cependant, cette solution n'est pas bonne pour 2 raisons :
La zone de saisie que propose ChatGPT n'accepte pas la saisie de fonction.
La fonction randint() - à ma connaissance - n'existe pas en Javascript.

Le plus simple est de créer une action code avant l'action que l'on veut temporiser aléatoirement .
Elle contient :

Code: Select all

delai_mini=100;
delai_maxi=600;
delai_aleatoire =delai_mini +  Math.random() * (delai_maxi -delai_mini);
Execution.pause(delai_aleatoire);
Ayant d'assez faibles connaissances en code, pourrais-tu m'aider et me montrer comment tu le rajouterais dans ce code ici s'il te plaît ?

Par exemple pour que le timing variable s'effectue avant et après la console.

Si j'ai un exemple, je comprendrai et saurai me débrouiller par la suite :D

En te remerciant d'avance !

PS : C'est dommage que ceci n'est pas directement ajouté a actiona.

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
<settings program="actiona" version="3.10.0" scriptVersion="1.1.0" os="Windows"/>
<actions>
<action name="ActionConsole" version="1.0.0"/>
<action name="ActionPause" version="1.0.0"/>


</actions>
<parameters/>
<resources/>

<script pauseBefore="0" pauseAfter="0">
<action name="ActionPause">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<parameter name="duration">
<subParameter name="value" code="0">200</subParameter>
</parameter>
<parameter name="unit">
<subParameter name="value" code="0">milliseconds</subParameter>
</parameter>
</action>

<action name="ActionConsole">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<parameter name="output">
<subParameter name="value" code="0">information</subParameter>
</parameter>
<parameter name="text">
<subParameter name="value" code="0">Ceci est un test</subParameter>
</parameter>
</action>
</script>
</scriptfile>
Attachments
testt.PNG
testt.PNG (24.32 KiB) Viewed 917 times
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Action a temps random

Post by francois »

Voir exemple en pièce
attente aleatoire.ascr
(1.9 KiB) Downloaded 47 times
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Merci beaucoup !

Sais-tu s'il est possible de faire le même genre mais avec le placement du clic.

Exemple, je fais un clic en 600:600 (pixel), j'aimerai qu'il soit possible que mon clic se fasse avec +10 pixels de différence max en X et +10 pixels de différences max en Y

Du style, le clic pourrait donner une fois en 603:608, puis une autre fois en 605:609, puis 600:607, etc...

J'espère que je serai compréhensible, en tout cas, un énorme merci pour ton aide !
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Action a temps random

Post by francois »

Voir exemple en pièce jointe.
clic_aleatoire.ascr
(1.51 KiB) Downloaded 53 times
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Merci beaucoup pour ton aide,

Sujet a clôturer. :D
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Finalement, on peut laisser encore ouvert le sujet si ça ne dérange pas, je viendrai y poser mes questions.

@francois si jamais tu passes par là, ton clic aléatoire et ton attente aléatoire fonctionnent parfaitement et je t'en suis très reconnaissant.

Si maintenant je veux faire un clic droit a la place d'un clic gauche, ou bien un double clic gauche a la place d'un simple clic, peux-tu me dire ce que je dois changer?

Pareil, j'ai une autre question qui me vient en tête, quel code je devrais utiliser si je veux avoir cette même possibilité de variation du positionnement du clic, mais sur un "Trouver Image".

Je m'explique, le capteur trouve l'image, il clique toujours au même coordonnées quand l'image se trouve au même endroit, est-il possible de faire un trouve image, qu'il clique sur l'image recherché mais avec une variation du positionnement du clic, par exemple de nouveau une variable de 10 pixel en X et en Y.

Je te remercie infiniment d'avance si tu m'envoies a nouveau des exemples, sinon ce n'est pas grave, tu m'as déjà énormément aidé.

Il faut absolument que je m'intéresse au code, aurais-tu des formations a me conseiller pour savoir coder le javascript comme tu le fais ?
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Action a temps random

Post by francois »

Pour faire un clic droit :

Code: Select all

var souris=new Mouse()
souris.click(2);
Execution.pause(2000)
Pour apprendre le code d'Actiona :
https://wiki.actiona.tools/doku.php?id=en:code
(Le site en anglais est plus complet que celui en français)

Plus généralement , pour apprendre le Javascript :
https://adrienjoly.developpez.com/tutor ... avascript/

Sur ce forum, via le champ de recherche situé en haut à gauche :
search.gif
search.gif (4.11 KiB) Viewed 728 times
Expérience perso :
Quand j’écris un script Actiona, j'utilise le plus possible les actions de base.
Je n'utilise le code que lorsque c'est nécessaire.


Un fan d'Actiona que JMGR a conçu et réalisé.
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Au top du top, merci francois !

Je vais m'y intéresser, j'utilise souvent les actions de bases, mais mon objectif est de rendre mon automatisation la plus humaine possible.

Merci énormément pour ton aide !
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Re,

Pour ce qui du code "Attente Aléatoire" que tu m'as écris plus haut.

J'ai fais des copier/coller dans mon script et j'ai l'impression que si j'en copie plusieurs dans un même script (mais que je change les valeurs), les valeurs s'additionnent entre elles. Donc plus on arrive vers la fin du script, + les délais sont long.
Est-ce normal ?


Est-ce que du coup, pour éviter cela, devrais-je changer le code comme ci dessous ?

1 délai aléatoire :
delai_mini=500;
delai_maxi=1000;
delai_aleatoire =delai_mini + Math.random() * (delai_maxi -delai_mini)

Execution.pause(delai_aleatoire)

2ème délais aléatoire :
delai_mini=1500;
delai_maxi=2000;
delai_aleatoire2 =delai_mini + Math.random() * (delai_maxi -delai_mini)

Execution.pause(delai_aleatoire2)

-----

Ou alors devrais-je simplement créer les différents timings aléatoires en amont, et ensuite rajouter simplement le code :

Execution.pause(delai_aleatoire)

Sans remettre les délais a chaque fois.

Car là, j'ai juste a chaque fois copier coller le code complet et changer les valeurs des délais.
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Action a temps random

Post by francois »

J'ai fais des copier/coller dans mon script et j'ai l'impression que si j'en copie plusieurs dans un même script (mais que je change les valeurs), les valeurs s'additionnent entre elles. Donc plus on arrive vers la fin du script, + les délais sont long.
Est-ce normal ?
Non, à chaque fois delai_aleatoire est recalculé.

Les 2 méthodes conviennent , à condition d’être mises en œuvre correctement.
Fresan
Posts: 18
Joined: 19 Feb 2023, 10:36

Re: Action a temps random

Post by Fresan »

Ok je vais chercher un petit peu pour essayer de trouver pourquoi ça me fait cela.

J'ai environ 300 lignes de script, plus j'arrive vers la fin, plus les délais aléatoires sont longs alors que c'est exactement les mêmes.
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Action a temps random

Post by francois »

J'ai fait un script qui vérifie 2 choses :
  • Les 'delai_aleatoire' générés sont-ils de plus en plus longs.
  • La fonction 'pause' fait-elle ce qu'on lui demande après N appels.
Voir script en pièce jointe.
verif_pause.ascr
(1.27 KiB) Downloaded 45 times
Post Reply