Mac'imde Python'da yazılmış bir uygulamada global fare olaylarını (bir uygulamaya bağlı değil) dinlemem gerekiyor.Mac üzerinde Python'da bir fare olayı nasıl dinleyebilirim?
Ben PyObjC kullanıyorum, ama bunu anlamaya olamaz. Düz ObjC örnekleri veya diğer Python teknikleri de takdir edildi. Bugüne kadar
Kodum:
from Quartz import *
def MyFunction(proxy, type, event):
print event
CGEventTapCreate(kCGHIDEventTap, kCGTailAppendEventTap, kCGEventTapOptionListenOnly, kCGEventLeftMouseDown, MyFunction)
== Segmentasyon hatası
ben sonradan bir olay kaynağına eklemeniz gerekir biliyorum ama bu ilk çalışma almak gerekir.
[güncelleme]
PyObjC formu MacPorts segfault çözüldü kullanarak, peki şimdi bu yazdım:
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();
Ama bu sadece sonsuza çalışır ve yanlış nedir fare olaylara yanıt vermiyor? onlar çağrıldığında
bu doğru cevap olmalı –