[..] Simulation click de souris sans déplacement

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
neo007
Niveau 1
Niveau 1
Messages : 6
Enregistré le : sam. 31 juil. 2010 18:44
Status : Hors ligne

[..] Simulation click de souris sans déplacement

#1

Message par neo007 »

Bonjour à tous et à toutes :D

Je cherche un moyen de simuler un clique de souris avec sans déplacer la souris

Merci et bonne journée :)
baconix
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 13 juil. 2009 15:12
Status : Hors ligne

Re: [AutoIt] Simulation de clique de souris sans déplacement ?

#2

Message par baconix »

Bonjour,

Vous ne précisez pas pour quel genre d'application en tout cas pour internet il y a : _IEAction ($oIE, "click" )
Baconix
neo007
Niveau 1
Niveau 1
Messages : 6
Enregistré le : sam. 31 juil. 2010 18:44
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#3

Message par neo007 »

N'est-il pas possible de prendre possession de l'objet concerné et de lui envoyer une instruction ?

P.S. Je parle de google chrome
neo007
Niveau 1
Niveau 1
Messages : 6
Enregistré le : sam. 31 juil. 2010 18:44
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#4

Message par neo007 »

ControlClick(...)
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#5

Message par SrBelial »

Exact, il existe deux méthodes pour simuler un clic de souris à un endroit donné sans que la souris ne se déplace :

Si on souhaite cliquer un control bien défini (bouton, champ de texte etc ...) on effectue un ControlClic (cf documentation pour connaitre la signature de la fonction)

Si on ne connait pas de control, par exemple je veux cliquer sur le bureau aux coordonnées 400,600, alors je procède de cette façon :

Code : Tout sélectionner

Dim $origin = MouseGetPos()
MouseClick("left", 400, 600, 1, 0)
MouseMove($origin[0], $origin[1], 0)
explications :
j'enregistre dans une variable la position originale de la souris
j'effectue un mouseclic aux coordonnées voulues, avec une vitesse ayant pour valeur 0 (ce qui fait que la souris se déplace au bon endroit et clique instantanément)
je replace ensuite la souris au bon endroit (avec les coordonnées d'origine et une vitesse = 0 pour retéléporter la souris à sa place d'origine)

voila voila !

[EDIT : rajout de $ à la variable $origin ... merci alex1205 pour la remarque !]
Modifié en dernier par SrBelial le lun. 02 août 2010 11:03, modifié 1 fois.
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
neo007
Niveau 1
Niveau 1
Messages : 6
Enregistré le : sam. 31 juil. 2010 18:44
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#6

Message par neo007 »

Bon... j'ai fait mon script mais cela m'apporte un gros problème : personne ne peut aller sur l'ordi pendant que mon script fonctionne !

Si je change de session, plus rien ne se passe

Ou encore pire, quand j'utilise un ControclClick, tout fonctionne de travers... j,ai ma fenêtre d'ouverte, ya la commande ControlClick("ma fenêtre", "", "", "left", 1, $posbase[0], $posbase[1]) et elle fait... n'importe quoi sauf ce qu'elle devrait faire, aucun clique n'apparaît dans la fenêtre à l'endroit $posbase; il faut que je fasse un clique dans la fenêtre puis après la commande s'exécute

Je voudrais que mon script puisse fonctionner en «arrière-plan» et que l'on puisse faire tout comme à la normal, est-ce possible ?

merci et bonne journée
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#7

Message par SrBelial »

alors si ton script bloque tout il y a de fortes chances que tu aie inclus dedans une boucle qui tourne en continu sans jamais rendre la main au système ...

si tu as une boucle du style {while 1 ... Wend} ou {for $i = 0 To 2000000 step 1 .... Next}, alors il te faut ajouter un sleep à l'intérieur.
Déjà avec qqch comme sleep(100) ou sleep(250) ça devrait rendre un peu la main aux autres processus.

sinon je vois pas trop quelle autre cause pourrait créer ce problème !

Sinon ton controlclick n'est peut être pas correctement fait.
Déjà vérifie bien avec AutoIT Windows Info Tool (Ctrl + F6 quand tu es dans SciTE) que tu as le bon nom de la fenêtre, éventuellement regarde si il vaudrait pas mieux utiliser la classe de la fenêtre à la place du titre ("[CLASS:Notepad]" par exemple)

Si ta fenêtre est inactive il peut être normal que AutoIT ne parvienne pas à effectuer le controlClic() ... c'est une fonction capricieuse, parfois elle ne trouve pas les controls dans une fenêtre, parfois il faut s'assurer qu'elle est active en utilisant un appel à winactivate() etc ... de la même façon, vérifie que tes coordonnées ne changent pas (en gros retaille ta fenêtre en fullscreen et prend les coordonnées écran par exemple)

et enfin si tu te trouves à cliquer sur un control précis et non juste à des coordonnées dans une fenêtre, cherche avec le AutoIT Window Info Tool pour trouver le nom, la classe, l'instance du control, et fais le controlClic sur lui directement.

dernier point : sur ce genre d'actions, pense que ton script est censé se comporter comme un utilisateur humain ! est ce que toi tu es capable de cliquer à un endroit donné d'une fenêtre donnée lorsque celle ci est réduite ? .... en général non hein ?! ce que fait un humain c'est ouvrir ou activer la fenêtre, cliquer, et re-réduire la fenêtre.

en espérant t'avoir aidé !
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
alex1205
Niveau 5
Niveau 5
Messages : 123
Enregistré le : dim. 07 mars 2010 13:59
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#8

Message par alex1205 »

@SrBelial : Pense a mettre $ à origin
Le "je ne sais pas" et "j'y arrive pas" n'existe dans mon vocabulaire. Toutes Questions ont une réponse, cherchez et vous la trouverai. Utilisez Recherche du forum et vous verrez. Si [blink]Aucune[/blink] question ne tient à votre problème, créez un sujet.
alex1205
Niveau 5
Niveau 5
Messages : 123
Enregistré le : dim. 07 mars 2010 13:59
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#9

Message par alex1205 »

De rien
Le "je ne sais pas" et "j'y arrive pas" n'existe dans mon vocabulaire. Toutes Questions ont une réponse, cherchez et vous la trouverai. Utilisez Recherche du forum et vous verrez. Si [blink]Aucune[/blink] question ne tient à votre problème, créez un sujet.
neo007
Niveau 1
Niveau 1
Messages : 6
Enregistré le : sam. 31 juil. 2010 18:44
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#10

Message par neo007 »

Bon... je vais essayer ça un peu plus tard et je reviens si j'ai d'autres problèmes :wink:
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#11

Message par SrBelial »

alors, solved or not solved ?
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
neo007
Niveau 1
Niveau 1
Messages : 6
Enregistré le : sam. 31 juil. 2010 18:44
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#12

Message par neo007 »

Résolu :D
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Simulation click de souris sans déplacement

#13

Message par Tlem »

Dans ce cas : Sujet résolut = [R] dans le titre de votre premier message.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre