Я пытаюсь получить двойной клик мыши с помощью pyHook, но вместо этого я получаю две пары записей по одному клику, например. WM_LBUTTONDOWN (0x201) и WM_LBUTTONUP (0x202). Я ожидаю WM_LBUTTONDBLCLK (0x203). Что я здесь пропускаю?
import pythoncom, pyHook
def OnMouseEvent(event):
print event.Message, event.Position
return True
hm = pyHook.HookManager()
hm.MouseAll = OnMouseEvent
hm.HookMouse()
pythoncom.PumpMessages()
Я нашел этот совет: в этом посте MrZebra говорит: «Для отправки этого (0x203) необходимо создать класс вашего окна в стиле класса CS_DBLCLKS»
Редактировать : Эта страница указывает, что двойной щелчок сгенерирует эти 4 сообщения:
WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK и WM_LBUTTONUP, но я фактически получаю первые два дважды.
Я использую Python 2.7 и pyHook 1.5.1 на Win7x64
ReEdit : Я рассмотрю в качестве ответов альтернативы C ++ / C # Keyboard / Mouse hooks. С другой стороны, я не уверен, является ли обычной практикой создание функций для определения события двойного щелчка, оценивающего время между двумя щелчками.