Page 1 sur 1
[R] Double click
Posté : ven. 03 juil. 2009 15:08
par Mandracord
Bonjour tout le monde, je suis un gros débutant sur autoit et j'aimerai qu'on me crée un script avec le doubleclick, avec le pixelsearch et le lancement d'une application pour que je vois un peu comment l'utiliser et comment sa marche. évidemment avant de vous le demander j'ai beaucoup cherché par moi même.
P.S. : mon but serait de faire un script pour me connecter automatiquement sur une application.
Re: Double click
Posté : ven. 03 juil. 2009 18:12
par jbnh
Bonjour,
Merci de premièrement lire les
règles de présentation d'un message et d'éditer votre titre.
Aussi, je doute que vous ayez cherché, je cite : "beaucoup", par vous même. Vos questions sont "de base" et des exemples pour chacune de vos demandes figurent dans
la documentation même d'autoit.
Il existe par ailleurs la fonction "rechercher" du forum.
Re: Double click
Posté : ven. 03 juil. 2009 18:19
par Mandracord
En faite j'ai trouvé pour le double clique, le lancement de l'application (se matin même) mais pour la reconnaissance pixel j'ai trouvé la commande mais je n'arrive pas a la faire fonctionner je peux vous montrez mon code
Code : Tout sélectionner
Run("application") ; lance l'application
WinWaitActive ( "application" ) ; attend le lancement de mon application
Sleep ( 5000 )
Send ("{TAB}")
Send ("{TAB}")
Send ("{^a}")
Send ("compte") ; le compte
Send ("{TAB}")
send ("mdp") ; le mot de passe
send ( "{ENTER}" )
Sleep (2000)
$coord = PixelSearch( 0-250, 0-250, 20, 300, 0x50c159 ) ; ce qui doit être la reconnaissance pixel
If Not @error Then
MouseMove (x=$coord, y=$coord, 2)
MouseClick("left", , , 2, 2)
EndIf
Et désolé pour le titre :s puis la recherche je l'ai utiliser mais en aucun cas j'ai trouvé le sujet qui aurait pu m'aider :s
Re: Double click
Posté : ven. 03 juil. 2009 18:43
par Iste
c'est marrant mais ca ressemble a un bot.
Sinon, heu 0-250 ?? Tu veux chercher des pixel hors de ton ecran ?
j'espere que non ^^
Tu dois indiquer les coordonnée du rectangle de recherche comme suit ; left, top, right, bottom. Donc la coordoné X du coté gauche du cadre, la coordonée Y du haut, la X de droite et la Y du bas.
Apres, si tu veux faire une recherche continue, il faut placer le tout dans une boucle (While)
Re: Double click
Posté : ven. 03 juil. 2009 18:54
par orax
Je ne comprends pas non plus le "0-250".
J'ajoute qu'il y a aussi 2 erreurs :
- à MouseMove puisque $coord est un tableau (array) donc il faut utiliser les crochets ("[ ]") pour accéder à ses éléments ;
- et à MouseClick("left", , , 2, 2), si vous souhaitez mettre une valeur nulle, vous devez mettre des guillemets ("" ou '') entre les virgules, par exemple : MouseClick("left", "", "", 2, 2)
Code : Tout sélectionner
$coord = PixelSearch(0, 0, 20, 300, 0x50c159) ; ce qui doit être la reconnaissance pixel
If Not @error Then
MouseClick("left", $coord[0], $coord[1], 1, 2)
EndIf
Et au lieu d'utiliser send() vous pourriez peut-être utiliser ControlSend() mais bon... si ça marche comme ça, vous pouvez laisser comme ça.
Re: Double click
Posté : ven. 03 juil. 2009 19:37
par Mandracord
Alors j'ai pris compte des changement que vous m'avez conseillés par contre j'ai pas compris l'histoire du 0-250 parce que moi quand j'ai regardé l'aide elle indiqué la portée mais pas d'unité précise et pour les coordonné j'utilise autoit window info.
Je vous redonnes le code parce que maintenant il m'affiche :
line -1 :
Error : error in expression
je ne sais pas se que s'est...
Code : Tout sélectionner
Run("C:\Program Files\Dofus\UpLauncher.exe")
WinWaitActive ( "application" )
Sleep ( 5000 )
Send ("{TAB}")
Send ("{TAB}")
Send ("{^a}")
Send ("compte")
Send ("{TAB}")
send ("mdp")
send ( "{ENTER}" )
Sleep (2000)
$coord = PixelSearch( 0, 1023, 20, 300, 0x50c159 )
While ; la boucle
If Not @error Then
MouseClick("left", $coord[0], $coord[1], 1, 2)
EndIf
WEnd
Vous avez dit que s'est un bot mais je dirais plutot un automate car pour chacun de mes comptes je vais faire un script qui me les lancera automatiquement

sa me simplifiera la vie (les bot j'aime pas ça sa me degoute quand j'envoie sa ruine l'esprit des jeux)
P.S. : la recherche pixel c'est pour trouver le serveur sur lequel je me connecte
Re: Double click
Posté : ven. 03 juil. 2009 19:43
par Iste
Mandracord a écrit :parce que moi quand j'ai regardé l'aide elle indiqué la portée mais pas d'unité précise
Ben en pixel

ca peut etre que ca voyons !
Enfin bref, erreur ligne -1 c'est qu'il n'y a pas d'info de ligne, cest ce qui arrive avec les scripts compilés.
Ca doit surement venir de While. C'est comme une condition, on dit "While 'condition'", en général "While 1" pour une boucle infini
ps : lire rapidement tes mp
Re: Double click
Posté : ven. 03 juil. 2009 20:16
par Mandracord
Bon j'ai modifier j'ai mis while 1 j'ai fermé la boucle mais la reconnaissance pixel ne fonctionne toujours pas

si vous voyez pourquoi dite le moi, mon but est de faire cliquer sur le pixel trouvé
Code : Tout sélectionner
Run("C:\Program Files\Dofus\UpLauncher.exe")
WinWaitActive ( "application" )
Sleep ( 5000 )
Send ("{TAB}")
Send ("{TAB}")
Send ("{^a}")
Send ("compte")
Send ("{TAB}")
send ("mdr")
send ( "{ENTER}" )
Sleep (2000)
$coord = PixelSearch( 0, 1023, 20, 300, 0x50c159 )
While 1 ; la boucle
If Not @error Then
MouseClick("left", $coord[0], $coord[1], 1, 2)
EndIf
WEnd
Re: Double click
Posté : ven. 03 juil. 2009 20:33
par Iste
le PixelSearch doit se trouver dans la boucle ! sinon il ne s'effectue qu'une seul foi, pis bon... bref
Code : Tout sélectionner
While 1 ; la boucle
$coord = PixelSearch( 0, 1023, 20, 300, 0x50c159 )
If Not @error Then ExitLoop
WEnd
MouseClick("left", $coord[0], $coord[1], 1, 2)
voici une boucle qui effectue en permanence des PixelSearch, et qui se stop quand elle trouve.
Ensuite on clic.
Re: Double click
Posté : ven. 03 juil. 2009 20:48
par Mandracord
Bon je pense que cela vient de moi car le click ne s'effectue toujours pas
Code : Tout sélectionner
Run("C:\Program Files\Dofus\UpLauncher.exe")
WinWaitActive ( "application" )
Sleep ( 5000 )
Send ("{TAB}")
Send ("{TAB}")
Send ("{^a}")
Send ("compte")
Send ("{TAB}")
send ("mdp")
send ( "{ENTER}" )
Sleep (2000)
While 1 ; la boucle
$coord = PixelSearch( 0, 1023, 20, 300, 0x50c159 )
If Not @error Then ExitLoop
WEnd
MouseClick("left", $coord[0], $coord[1], 1, 500)
(j'ai changé la vitesse de click pour voir si c'etait sa)
Je pense que j'essaie une dernière fois puis je vais chercher une autre solution que le pixelsearch, peut être que ma couleur est fausse :O
Re: Double click
Posté : ven. 03 juil. 2009 20:51
par orax
A mon avis, il y a aussi un autre problème. D'après les coordonnées que vous avez rentrées je ne crois pas que ça forme un rectangle.

PixelSearch(gauche, haut, droite, bas, ...)
Re: Double click
Posté : ven. 03 juil. 2009 20:53
par Mandracord
Alors j'ai mesuré l'ecran avec l'info window autoIt pour le haut bas je ne sais pas je vais verifié....
Code : Tout sélectionner
Run("C:\Program Files\Dofus\UpLauncher.exe")
WinWaitActive ( "application" )
Sleep ( 5000 )
Send ("{TAB}")
Send ("{TAB}")
Send ("{^a}")
Send ("compte")
Send ("{TAB}")
send ("mdp")
send ( "{ENTER}" )
Sleep (2000)
While 1 ; la boucle
$coord = PixelSearch( 0, 432, 1023, 767, 0x50c159 )
If Not @error Then ExitLoop
WEnd
MouseClick("left", $coord[0], $coord[1], 1, 500)
Re: Double click
Posté : ven. 03 juil. 2009 20:55
par orax
Je dis ça puisque le "haut" a une coordonnée plus grande que le "bas"

donc ça cloche.
Re: Double click
Posté : ven. 03 juil. 2009 20:58
par Mandracord
Peut etre que je relève mal, pour le haut jai pris celui de gauche et le bas celui de droite comme chiffre, c'est le window info de autoit que j'utilise (se que j'ai mis sont l'extrême gauche, haut, droite et bas)
Re: Double click
Posté : ven. 03 juil. 2009 21:12
par orax
Je vais dans l'onglet "Mouse" .
Ensuite je relève la position en haut à gauche de la fenêtre, ça m'indique par exemple : "Position 100,150".
Je relève ensuite la position en bas à droite, ça m'indique par exemple : "Position 900,750".
Si je ne dis pas de bêtises ça donne PixelSearch(100,150,900,750, ...).
Re: [R] Double click
Posté : sam. 04 juil. 2009 00:49
par Mandracord
Merci j'ai fini mon projet a abouti, merci de votre aide et du temps que vous avez consacré, sa a été dur mais le defi que je me suis lancé je l'ai réussi je vais pouvoir viser plus gros comme un logiciel de rangement automatique des image

encore merci