I am trying to generate keyboard keydown and keyup events programmatically. I am currently using CGPostKeyboardEvent to do this, but I am searching for a way to do this at a lower level. I have looked at DDHidLib but could not figure out a way to create a fake event. Can anyone help?

**update**: 
Thanks to weichsel's advice I am now creating a key down event with the following:

```
  CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
  CGEventPost(kCGSessionEventTap, e);
  CFRelease(e);

```

which I found [here](http://www.openframeworks.cc/forum/viewtopic.php?f=9&t=2267).

**However**, my problem still stands so I will elaborate a bit. The application (3rd party) that I would like to send keypresses to implements [DDHidLib's](http://www.dribin.org/dave/blog/archives/2007/03/19/ddhidlib_10/) key capturing function: 

```
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
             keyDown: (unsigned) usageId;

```

And this never gets called using the current method. My guess is that the key down simulated with CGEventCreateKeyboardEvent is at too high of a level to be captured by ddhidKeyboard:keyDown. So what I am trying to do is create the keydown event at a sufficiently low level such that it will be recognized by ddhidKeyboard:keyDown.