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 :D 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 :o 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 :x 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. Image
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" Image 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 :D encore merci