J'essaie d'obtenir des doubles clics de souris avec pyHook, mais à la place, je reçois deux paires d'entrées de simples clics, par ex. WM_LBUTTONDOWN (0x201) et WM_LBUTTONUP (0x202). J'attends WM_LBUTTONDBLCLK (0x203). Qu'est-ce que je rate ici?Double clic sur la souris avec pyHook
import pythoncom, pyHook
def OnMouseEvent(event):
print event.Message, event.Position
return True
hm = pyHook.HookManager()
hm.MouseAll = OnMouseEvent
hm.HookMouse()
pythoncom.PumpMessages()
J'ai trouvé cette astuce: Dans this post MrZebra dit: "Ce (0x203) à envoyer, votre classe de fenêtre doit être créé avec le style de classe CS_DBLCLKS"
Modifier: This page indique que le double-clic générera ces 4 msgs: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK et WM_LBUTTONUP, mais je reçois les deux premiers deux fois.
J'utilise Python 2.7 et 1.5.1 pyHook sur Win7x64
remodifier: Je considère que les réponses C++/C# Clavier/souris alternatives crochets. D'un autre côté, je ne suis pas sûr que ce soit une pratique courante de construire des fonctions pour déterminer l'événement de double clic évaluant le temps entre deux clics.
Essayez d'ajouter 'hm.SubscribeMouseAllButtonsDbl (OnMouseEvent)' après l'instruction 'hm = pyHook.HookManager()'. – martineau
J'ai fait les changements mais les doubleclicks ne seront pas visibles. J'appreaciate beaucoup le conseil. –