Example #1
0
int main(void) {

  fprintf(stderr, "Starting up.\n");
  CFMachPortRef      eventTap;
  CFRunLoopSourceRef runLoopSource;

  CGEventFlags oldFlags = CGEventSourceFlagsState(kCGEventSourceStateCombinedSessionState);
  eventTap = CGEventTapCreate(kCGSessionEventTap,
                              kCGHeadInsertEventTap,
                              0,
                              kCGEventMaskForAllEvents,
                              //CGEventMaskBit(kCGEventFlagsChanged) | CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventKeyUp),
                              myCGEventCallback,
                              &oldFlags);
  if (!eventTap) {
    fprintf(stderr, "Failed to create event tap!\n");
    exit(1);
  }

  runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
  CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);
  CGEventTapEnable(eventTap, true);
  CFRunLoopRun();

  exit(0);

}
Example #2
0
void createEventTap (CGEventTapCallBack eventCallback) {
  CGEventFlags oldFlags = CGEventSourceFlagsState(kCGEventSourceStateCombinedSessionState);
  //CGEventMask eventMask = (CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventFlagsChanged));
  CGEventMask eventMask = kCGEventMaskForAllEvents;
  CFMachPortRef eventTap = CGEventTapCreate(kCGSessionEventTap,
      kCGHeadInsertEventTap, 0, eventMask, eventCallback, &oldFlags);

  if (!eventTap) {
    fprintf(stderr, "failed to create event tap\nyou need to enable \"Enable access for assitive devices\" in Universal Access preference panel.");
    exit(1);
  }

  CFRunLoopSourceRef runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
  CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);
  CGEventTapEnable(eventTap, true);
}
Example #3
0
int main (int argc, const char * argv[]) {
  CGEventFlags oldFlags = CGEventSourceFlagsState(kCGEventSourceStateCombinedSessionState);

  CGEventMask eventMask = (CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventFlagsChanged));
  CFMachPortRef eventTap = CGEventTapCreate(kCGSessionEventTap, kCGHeadInsertEventTap, 0, eventMask, myCGEventCallback, &oldFlags);
  
  if (!eventTap) {
    fprintf(stderr, "failed to create event tap\nyou need to enable \"Enable access for assitive devices\" in Universal Access preference panel.");
    exit(1);
  }
  
  CFRunLoopSourceRef runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
  CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);
  CGEventTapEnable(eventTap, true);
  
  logFile = fopen("/var/log/keystroke.log", "a");
  CFRunLoopRun();
  
  return 0;
}
int main(void) {
	CFMachPortRef   eventTap;
	CGEventMask     eventMask;
	CFRunLoopSourceRef runLoopSource;

	//Create an event tap.We are interested in key presses.
	CGEventFlags    oldFlags = CGEventSourceFlagsState(kCGEventSourceStateCombinedSessionState);
	eventMask = ((1 << kCGEventKeyDown) | (1 << kCGEventKeyUp));
	eventTap = CGEventTapCreate(
			kCGSessionEventTap, 
			kCGHeadInsertEventTap, 
			0,
			//eventMask,
			 CGEventMaskBit(kCGEventKeyDown) |
			CGEventMaskBit(kCGEventKeyUp),
			myCGEventCallback, 
			&oldFlags);
	if (!eventTap) {
		fprintf(stderr, "failed to create event tap\n");
		exit(1);
	}
	//Create a run loop source.
	runLoopSource = CFMachPortCreateRunLoopSource( kCFAllocatorDefault, eventTap, 0);

	//Add to the current run loop.
	CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);

	//Enable the event tap.
		CGEventTapEnable(eventTap, true);

	//Set it all running.
		CFRunLoopRun();

	//In a real program, one would have arranged for cleaning up.

			exit(0);
}
bool ofxMacFunctionKeyDown() {
	return CGEventSourceFlagsState(kCGEventSourceStateHIDSystemState) & kCGEventFlagMaskSecondaryFn;
//	CGEventFlags s = CGEventSourceFlagsState(kCGEventSourceStateHIDSystemState);
//	cout << "Testey: " <<s <<endl;
}
bool ofxMacAltKeyDown() {
	return CGEventSourceFlagsState(kCGEventSourceStateHIDSystemState) & kCGEventFlagMaskAlternate;
}
bool ofxMacCapsLockKeyDown() {
	return CGEventSourceFlagsState(kCGEventSourceStateHIDSystemState) & 0x10000;
}
bool ofxMacCommandKeyDown() {
	return CGEventSourceFlagsState(kCGEventSourceStateHIDSystemState) & kCGEventFlagMaskCommand;
}
bool ofxMacShiftKeyDown() {
	return CGEventSourceFlagsState(kCGEventSourceStateHIDSystemState) & kCGEventFlagMaskShift;
}