Le 8 mars 2011 à 04:40, Deepa a écrit :
> Hi,
>
> I am developing a desktop application that supports one of the feature
> through Hot Key. I am using Event Tap for this to work.
>
> But, sometimes (randomly) the callback is not invoked; Hot Key does not work
> and hence the feature seems to be not working.
>
> Could someone help me out in identifying the problem here.
>
> Following is the code snippet:
>
> -( void )startEventTapinThread //Called in a separate thread.
> {
> NSAutoreleasePool *pool =[ [ NSAutoreleasePool alloc] init];
>
> CFRunLoopRef runloop =(CFRunLoopRef)CFRunLoopGetCurrent();
> CGEventMask interestedEvents =
> CGEventMaskBit(kCGEventFlagsChanged)|CGEventMaskBit(kCGEventKeyDown);
> CFMachPortRef eventTap = CGEventTapCreate(kCGSessionEventTap,
> kCGHeadInsertEventTap, 0, interestedEvents, myCGEventCallback, self);
> //self is the object pointer our method
> CFRunLoopSourceRef source =
> CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
> CFRunLoopAddSource((CFRunLoopRef)runloop , source,
> kCFRunLoopCommonModes);
> CFRunLoopRun();
> [ pool release];
> }
>
> CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type,
> CGEventRef event, void *refcon)
> {
> CGEventType eventType = CGEventGetType(event);
> //execute the code related to feature
> }
Why you don't use the HotKey API instead (RegisterEventHotKey()) ? It does not
require root access or accessibility enabled and it works quite well.
-- Jean-Daniel
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]