[R] Où a cliqué la souris ?
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- 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 ?
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
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.
- matwachich
- 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 ?
mousegetpos() couplé à _ispressed()
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
-
- 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 ?
je ne trouve pas _ispressed() dans la doc ni française ni anglais
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Où a cliqué la souris ?
Vous avez mal cherchez, ou alors vous avez une très vielle version de AutoIt.
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.
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.
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.
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é".
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é".
Re: [..] Où a cliqué la souris ?
Essaie ça :
Sinon, si tu n'as pas _IsPressed :
Insère ça dans le code et enlève le #include <Misc.au3>
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
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
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.
-
- 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 ?
merci pour vos réponses mais est-il possible de savoir la pos ou on enffonce le clic et celle ou on le relache ?
-
- Niveau 7
- Messages : 442
- Enregistré le : dim. 06 juil. 2008 09:11
- Status : Hors ligne
Re: [..] Où a cliqué la souris ?
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.
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 = )
plus belle vue du haut de son Pouf = )
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Où a cliqué la souris ?
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.
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.
-
- 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 ?
merci pour vos réponses
mis en résolu
mis en résolu