[R] Où a cliqué la souris ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
linvok
Niveau 1
Niveau 1
Messages : 4
Enregistré le : sam. 17 juil. 2010 14:18
Localisation : dèrrière mon ordi
Status : Hors ligne

[R] Où a cliqué la souris ?

#1

Message par linvok »

Bonjour,
je cherche à savoir où a cliqué la souris et où a-t-on relaché le bouton
ex : on selectionne plusieurs icones en faisant un rectangle avec la souris
Modifié en dernier par linvok le jeu. 05 août 2010 21:21, modifié 1 fois.
Image
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] où a cliqué la souris ?

#2

Message par matwachich »

mousegetpos() couplé à _ispressed()
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
linvok
Niveau 1
Niveau 1
Messages : 4
Enregistré le : sam. 17 juil. 2010 14:18
Localisation : dèrrière mon ordi
Status : Hors ligne

Re: [..] Où a cliqué la souris ?

#3

Message par linvok »

je ne trouve pas _ispressed() dans la doc ni française ni anglais
Image
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Où a cliqué la souris ?

#4

Message par Tlem »

Vous avez mal cherchez, ou alors vous avez une très vielle version de AutoIt. :shock:

Lancez Scite -> Appuyez sur F1 -> Sélectionnez l'onglet Index (si nécessaire) -> Tapez le début de la fonction à rechercher _Ispr -> lorsque la fonction apparait dans la colonne en dessous de la recherche, faites deux clics dessus. :P

Ou

C:\Program Files\AutoIt3\AutoIt3.chm -> Sélectionnez l'onglet Index (si nécessaire) -> Tapez le début de la fonction à rechercher _Ispr -> lorsque la fonction apparait dans la colonne en dessous de la recherche, faites deux clics dessus.

Ou encore

Cliquez sur Démarrer -> Cliquez sur Tous les programmes -> Cliquez sur AutoIt V3 -> Et cliquez sur AutoIt Help File -> Sélectionnez l'onglet Index (si nécessaire) -> Tapez le début de la fonction à rechercher _Ispr -> lorsque la fonction apparait dans la colonne en dessous de la recherche, faites deux clics dessus.
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é".
alex1205
Niveau 5
Niveau 5
Messages : 123
Enregistré le : dim. 07 mars 2010 13:59
Status : Hors ligne

Re: [..] Où a cliqué la souris ?

#5

Message par alex1205 »

Essaie ça :

Code : Tout sélectionner

#include <Misc.au3>
$dll = DllOpen("user32.dll") ; Ouvre une DLL
While 1
    If _IsPressed("01", $dll) Then ; Si tu appuie sur le bouton gauche de la souris :
        $MouseGetPos = MouseGetPos() ; Calcule la position de la souris
        MsgBox(0, "Exemple", "Vous êtes à " & $MouseGetPos[0] & ", " & $MouseGetPos[1]) ; Affiche les coordonées de la position de la souris
    EndIf
    If _IsPressed("1B", $dll) Then ; Si tu appuie sur la touche Echap :
        ExitLoop ; Sort de la boucle infinie
    EndIf
WEnd
Exit
Sinon, si tu n'as pas _IsPressed :

Code : Tout sélectionner

; #FUNCTION# ====================================================================================================================
; Name...........: _IsPressed
; Description ...: Check if key has been pressed
; Syntax.........: _IsPressed($sHexKey[, $vDLL = 'user32.dll'])
; Parameters ....: $sHexKey     - Key to check for
;                  $vDLL        - Handle to dll or default to user32.dll
; Return values .: True         - 1
;                  False        - 0
; Author ........: ezzetabi and Jon
; Modified.......:
; Remarks .......: If calling this function repeatidly, should open 'user32.dll' and pass in handle.
;                  Make sure to close at end of script
;                  01 Left mouse button
;                  02 Right mouse button
;                  04 Middle mouse button (three-button mouse)
;                  05 Windows 2000/XP: X1 mouse button
;                  06 Windows 2000/XP: X2 mouse button
;                  08 BACKSPACE key
;                  09 TAB key
;                  0C CLEAR key
;                  0D ENTER key
;                  10 SHIFT key
;                  11 CTRL key
;                  12 ALT key
;                  13 PAUSE key
;                  14 CAPS LOCK key
;                  1B ESC key
;                  20 SPACEBAR
;                  21 PAGE UP key
;                  22 PAGE DOWN key
;                  23 END key
;                  24 HOME key
;                  25 LEFT ARROW key
;                  26 UP ARROW key
;                  27 RIGHT ARROW key
;                  28 DOWN ARROW key
;                  29 SELECT key
;                  2A PRINT key
;                  2B EXECUTE key
;                  2C PRINT SCREEN key
;                  2D INS key
;                  2E DEL key
;                  30 0 key
;                  31 1 key
;                  32 2 key
;                  33 3 key
;                  34 4 key
;                  35 5 key
;                  36 6 key
;                  37 7 key
;                  38 8 key
;                  39 9 key
;                  41 A key
;                  42 B key
;                  43 C key
;                  44 D key
;                  45 E key
;                  46 F key
;                  47 G key
;                  48 H key
;                  49 I key
;                  4A J key
;                  4B K key
;                  4C L key
;                  4D M key
;                  4E N key
;                  4F O key
;                  50 P key
;                  51 Q key
;                  52 R key
;                  53 S key
;                  54 T key
;                  55 U key
;                  56 V key
;                  57 W key
;                  58 X key
;                  59 Y key
;                  5A Z key
;                  5B Left Windows key
;                  5C Right Windows key
;                  60 Numeric keypad 0 key
;                  61 Numeric keypad 1 key
;                  62 Numeric keypad 2 key
;                  63 Numeric keypad 3 key
;                  64 Numeric keypad 4 key
;                  65 Numeric keypad 5 key
;                  66 Numeric keypad 6 key
;                  67 Numeric keypad 7 key
;                  68 Numeric keypad 8 key
;                  69 Numeric keypad 9 key
;                  6A Multiply key
;                  6B Add key
;                  6C Separator key
;                  6D Subtract key
;                  6E Decimal key
;                  6F Divide key
;                  70 F1 key
;                  71 F2 key
;                  72 F3 key
;                  73 F4 key
;                  74 F5 key
;                  75 F6 key
;                  76 F7 key
;                  77 F8 key
;                  78 F9 key
;                  79 F10 key
;                  7A F11 key
;                  7B F12 key
;                  7C-7F F13 key - F16 key
;                  80H-87H F17 key - F24 key
;                  90 NUM LOCK key
;                  91 SCROLL LOCK key
;                  A0 Left SHIFT key
;                  A1 Right SHIFT key
;                  A2 Left CONTROL key
;                  A3 Right CONTROL key
;                  A4 Left MENU key
;                  A5 Right MENU key
;                  BA ;
;                  BB =
;                  BC ,
;                  BD -
;                  BE .
;                  BF /
;                  C0 `
;                  DB [
;                  DC \
;                  DD ]
; Related .......:
; Link ..........:
; Example .......: Yes
; ===============================================================================================================================
Func _IsPressed($sHexKey, $vDLL = 'user32.dll')
    ; $hexKey must be the value of one of the keys.
    ; _Is_Key_Pressed will return 0 if the key is not pressed, 1 if it is.
    Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
    If @error Then Return SetError(@error, @extended, False)
    Return BitAND($a_R[0], 0x8000) <> 0
EndFunc   ;==>_IsPressed
Insère ça dans le code et enlève le #include <Misc.au3>
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.
linvok
Niveau 1
Niveau 1
Messages : 4
Enregistré le : sam. 17 juil. 2010 14:18
Localisation : dèrrière mon ordi
Status : Hors ligne

Re: [..] Où a cliqué la souris ?

#6

Message par linvok »

merci pour vos réponses mais est-il possible de savoir la pos ou on enffonce le clic et celle ou on le relache ?
Image
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Où a cliqué la souris ?

#7

Message par SagePourpre »

Il suffit d'intégrer une seconde boucle qui reste en fonction jusqu'à ce que le bouton gauche
soit relâché puis de reprendre la position à la sortie, comme ceci.

Code : Tout sélectionner

#include <Misc.au3>
$dll = DllOpen('user32.dll')
While 1
    Sleep(10)

    If _IsPressed(01, $dll) Then
        $presse = MouseGetPos()
        While _IsPressed(01, $dll) = 1
            Sleep(10)
        WEnd
        $relache = MouseGetPos()
        MsgBox(0,'test','Pressé (x:' & $presse[0] & ',y:' & $presse[1] & ') et relaché (x:' & $relache[0] & ',y:' & $relache[1] & ')')

    EndIf

WEnd
 
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Où a cliqué la souris ?

#8

Message par sylvanie »

Bonsoir,
je suis tombé sur ce lien intéressant passant par un enregistrement à la callback de gestion des évènements de la souris

avantages: permet de catcher beaucoups plus d'évènements.

inconvénient : il y a plus de travail ;-)

http://www.autoitscript.com/forum/index ... pic=103362

dans l'exple fourni, il utilise une GUI pour illustrer, mais on peut aisément partir de cet exple pour rediriger l'évènement souhaiter vers un fichier, etc.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
linvok
Niveau 1
Niveau 1
Messages : 4
Enregistré le : sam. 17 juil. 2010 14:18
Localisation : dèrrière mon ordi
Status : Hors ligne

Re: [R] Où a cliqué la souris ?

#9

Message par linvok »

merci pour vos réponses
mis en résolu
Image
Répondre