Search code examples
objective-ccocoamousemouseevent

Mouse tracking daemon


I need to write something using Cocoa to surface raw mouse movement data. Optimally, the app would just be a little daemon that would run, passing the data to a socket server which another application could tap into to gain access to the events.

Can anyone point me in the right direction with regard to approach and tools? I am not even sure where to begin with this right now.


Solution

  • The other simple way to do this is to add a global event monitor (10.6 only, however):

    id eventHandler = [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent * mouseEvent) {
      NSLog(@"Mouse moved: %@", NSStringFromPoint([mouseEvent locationInWindow]));
    }];
    

    Then when you're done tracking, you do:

    [NSEvent removeMonitor:eventHandler];