Мне нужно прослушивать глобальные события мыши (не привязанные к приложению) на моем Mac в приложении, написанном на Python.Как я могу прослушивать событие мыши в Python на Mac?
Я использую PyObjC, но я не могу понять, как это сделать. Также были оценены простые примеры ObjC или другие методы Python.
Мой код до сих пор:
from Quartz import *
def MyFunction(proxy, type, event):
print event
CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction)
== вина Сегментация
Я знаю, что мне нужно, чтобы добавить его к источнику события позже, но мне нужно, чтобы получить эту работу первым.
[обновление]
Использование PyObjC форма MacPorts решена Segfault, так что теперь я писал:
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();
Но это только работает вечно, и не реагирует на события мыши, что не так?
Это должен быть правильный ответ –