5
這裏是我的代碼:OSX石英事件絲錐:事件類型以及如何編輯事件
#import <ApplicationServices/ApplicationServices.h>
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
printf("%u\n", (uint32_t)type);
return event;
}
int main (int argc, const char * argv[]) {
CFMachPortRef eventTap;
CFRunLoopSourceRef runLoopSource;
eventTap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, 0, kCGEventMaskForAllEvents, myCGEventCallback, NULL);
runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);
CGEventTapEnable(eventTap, true);
CFRunLoopRun();
return 0;
}
首先..如果我想編輯的事件是什麼?例如,我監聽keyDown事件,如果它是「a」,我將它轉換爲「b」,或者實時編輯鼠標位置,或者例如簡單地捕獲事件並使其無效(禁用特定鍵例如..)
第二.. CGEventType定義一個枚舉,只列出幾種類型..例如,當我打CMD我得到一個12,但是不符合枚舉中指定的值..我在想什麼?
由戴維·德隆在這裏回答得很好: http://stackoverflow.com/questions/5785630/modify-nsevent-to - 發送-A-不同密鑰高於所述酮該-被按壓/ 5785895#5785895 – cksubs 2011-08-28 20:35:16