我需要在用Python编写的应用程序中监听我的Mac上的全局鼠标事件(未绑定到应用程序)。如何在Mac上监听Python中的鼠标事件?
我使用PyObjC,但我无法弄清楚如何去做。 Plain ObjC示例或其他Python技术也受到赞赏。
到目前为止我的代码:
from Quartz import *
def MyFunction(proxy, type, event):
print event
CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction)
==分割故障
我知道我需要将它添加到事件源以后,但我需要得到这个工作的第一位。
[更新]
使用PyObjC形式的MacPorts解决的段错误,所以现在我写了这个:
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();
但这只是一直运行,不响应鼠标事件,有什么不好?
这应该是正确的答案 – 2011-03-10 10:59:20