Necesito escuchar eventos de mouse globales (no vinculados a una aplicación) en mi Mac en una aplicación escrita en Python.¿Cómo puedo escuchar un evento de mouse en Python en Mac?
Estoy usando PyObjC, pero no puedo encontrar la manera de hacerlo. También se aprecian ejemplos de ObjC sencillos u otras técnicas de Python.
Mi código hasta ahora:
from Quartz import *
def MyFunction(proxy, type, event):
print event
CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction)
Fallo de segmentación ==
Sé que necesito para añadirlo a una fuente de eventos más adelante, pero tengo que conseguir este trabajo en primer lugar.
[Actualización]
Usando PyObjC forma MacPorts solucionó el error de segmentación, por lo que ahora me escribió esto:
from Quartz import *
def MyFunction(p, t, e, c):
print e
tap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction, None)
runLoopSource = CFMachPortCreateRunLoopSource(None, tap, 0);
CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopDefaultMode);
CGEventTapEnable(tap, True);
CFRunLoopRun();
Pero esto sólo funciona para siempre y no responde a los eventos del ratón, lo que está mal?
esta debería ser la respuesta correcta –