[..] Problème mouseclick

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
baddark
Niveau 2
Niveau 2
Messages : 23
Enregistré le : dim. 12 juil. 2009 10:43
Status : Hors ligne

[..] Problème mouseclick

#1

Message par baddark »

Bonjour,

J'ai un petit problème avec la fonction mouseclick :s, je vous explique

Tout d'abord, ma fonction récupère la position actuel du curseur

Code : Tout sélectionner

Func GetPos() ;récupérer la position du curseur
    Local $a
   
    $a = GUIGetCursorInfo()
    GUICtrlSetData($x_location, $a[0])
    $x_location = $a[0]
    GUICtrlSetData($y_location, $a[1])
    $y_location = $a[1]
EndFunc
Puis le mouseclick effectue un ou plusieurs clicks à l'endroit indiqué précédemment selon la configuration, j'ai mis un Opt("MouseCoordMode", 2) en début de code afin d'avoir les bon coordonnées sélectionné peut importe la position de la fenêtre, le premier click est au bon endroit mais par contre, les suivant sont décalé d'environ 300 pixel à droite et 20 en bas, pourquoi ce décalage ?

De plus, lorsque mon logiciel n'est pas au premier plan, une erreur dans cette fonction apparait : subscript used with non-Array variable.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Problème mouseclick

#2

Message par jbnh »

Pour l'erreur, c'est normal qu'il y ai une si la fenêtre avec laquelle tu souhaites travailler n'est pas active.
Le bout de code que tu nous a donné semble correct, l'erreur doit donc être autre part.

Dis nous en plus.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
baddark
Niveau 2
Niveau 2
Messages : 23
Enregistré le : dim. 12 juil. 2009 10:43
Status : Hors ligne

Re: [..] Problème mouseclick

#3

Message par baddark »

Effectivement, j'avais oublier l'active window :s

Je ne comprends vraiment pas pourquoi il y a ce décalage, j'ai vérifier avec un msgbox, les cordonnées sont pourtant les memes :s

cela ne peut venir du opt() ? J'ai l'impression que le curseur veux compenser la largeur/hauteur de la fenêtre, si j'active mon mouseclick le curseur se décale vers le bords de l'écran le plus proche :/ c'est a n'y rien comprendre, dois-je envoyé tout mon code ?
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Problème mouseclick

#4

Message par jumby »

Bonjour,

Comme il a été dit, le bout de code que tu nous a fourni plus haut semble correct.

Avoir plus de code ne pourrait que nous aider.

En revanche, tu utilises Mousecoordmode 2. Dans la doc, y est écrit :
MouseCoordMode Sets the way coords are used in the mouse functions, either absolute coords or coords relative to the current active window:
0 = relative coords to the active window
1 = absolute screen coordinates (default)
2 = relative coords to the client area of the active window

Personnelement, j'aurais choisi le paramètre 0. Je n'arrive pas bien à saisir la différence (si elle existe) entre le paramètre 0 et 2.

Testes avec le paramètre 0, ça ne mange pas de pain.
baddark
Niveau 2
Niveau 2
Messages : 23
Enregistré le : dim. 12 juil. 2009 10:43
Status : Hors ligne

Re: [..] Problème mouseclick

#5

Message par baddark »

Et bien en fait je n'y comprend rien non plus, mais j'ai mis 2 car avec les autres, même les clicks simple sont complètement décalé :/

Je pense que le 2 se base par rapport au coin en haut a gauche.
► Afficher le texte
Tout ce qui concerne le mouseclick est ici il me semble
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Problème mouseclick

#6

Message par orax »

Dans le code

Code : Tout sélectionner

    GUICtrlSetData($x_location, $a[0])
    $x_location = $a[0]
    GUICtrlSetData($y_location, $a[1])
    $y_location = $a[1]
vous utilisez les variables $x_location et $y_location comme des "contrôles ID" avec GUICtrlSetData et ensuite vous utilisez ces mêmes variables pour y mettre des coordonnées... :shock: Bizarre votre truc.

Bref, de cette manière ça marche (avec Mousecoordmode à 2) :
► Afficher le texte
Edité : code édité...
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
baddark
Niveau 2
Niveau 2
Messages : 23
Enregistré le : dim. 12 juil. 2009 10:43
Status : Hors ligne

Re: [..] Problème mouseclick

#7

Message par baddark »

Merci mais cela ne fonctionne pas :s j'avais pas fais attention, effectivement c'est très improbable.

Je viens de découvrir autre chose quand j'appuie sur F3 (la touche d'activation du mouseclick) et que mon curseur est dans la fenêtre de mon autoclick, les coordonnées sont les bons mais dès que je sors de cette fenêtre, seul le premier est bon :/

C'est très bizarre !
Répondre