CGEventCreateKeyboardEvent と CGEventPost の組み合わせで CGPostKeyboardEvent でできたことを実現したい
OSXプログラミングをしていて、Control-F4 といったキーボードショートカットのキーシーケンスをアプリで生成したいのですが、CGEventCreateKeyboardEvent と CGEventPost を使ってもうまくいきません。CGPostKeyboardEvent を使って同様のキーストロークを発生した場合にはうまく動きました。しかしながら、CGPostKeyboardEvent は deprecated になってしまったので、別の方法をさがしています。
CGPostKeyboardEvent((CGCharCode)0, (CGKeyCode)118/*F4*/, true); // worked
CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(NULL, (CGKeyCode)118/*F4*/, true)); // doesn't work
どのようにすれば、CGPostKeyboardEvent のようにキーボードショートカットのアプリでの実行ができるようになるかお教えいただけると幸いです。こういった、システムにかかわるキーボードショートカットを発行できてしまうことが、CGPostKeyboardEvent が deprecated になってしまった理由ではないかと思わなくもないのですが…