Thanks all for some tips. I'm going to try the following ideas and I'll let you know how it goes: - Run as root - Try just trapping on keyboard events - Append my event tap to the tail, and try annotated.
On Mon, Aug 10, 2009 at 9:37 AM, James W. Walker <o...@jwwalker.com> wrote: > > On Aug 9, 2009, at 3:15 PM, Nat Burke wrote: > > I have posted my event tap creation code below - I've searched all over >> the mailing list and the net to see if I could find a solution, but I am >> genuinely stuck. Any help is greatly appreciated! >> >> >> // Create an event tap. >> eventMask = CGEventMaskBit(kCGEventRightMouseDown) | >> CGEventMaskBit(kCGEventRightMouseUp) | >> CGEventMaskBit(kCGEventRightMouseDragged) | >> CGEventMaskBit(kCGEventMouseMoved) | >> CGEventMaskBit(kCGEventScrollWheel) | >> CGEventMaskBit(kCGEventFlagsChanged) | >> CGEventMaskBit(kCGEventKeyDown) | >> CGEventMaskBit(kCGEventKeyUp); >> >> DebugLog(@"Event before: %x", eventMask); >> >> eventTap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, >> kCGEventTapOptionDefault, eventMask, MouseCallback, self); >> >> DebugLog(@"Event after: %x", eventMask); >> >> if (!eventTap) { >> fprintf(stderr, "Failed to create event tap\n"); >> exit(1); >> } >> >> // Create a run loop source. >> runLoopSource = >> CFMachPortCreateRunLoopSource(/*kCFAllocatorDefault*/NULL, eventTap, 0); >> >> CFRelease(eventTap); >> >> // Add to the current run loop. >> CFRunLoopAddSource([[NSRunLoop currentRunLoop] getCFRunLoop], >> runLoopSource, kCFRunLoopCommonModes); >> >> // Enable the event tap. >> CGEventTapEnable(eventTap, true); >> >> CFRelease(runLoopSource); >> > > > I compared your code to the code that I use that gets key down > successfully. One difference is that I don't immediately CFRelease the > event tap and source, I keep them around as long as I use the tap. Another > is that the first 2 parameters I pass to CGEventTapCreate are > kCGAnnotatedSessionEventTap and kCGTailAppendEventTap. > > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com