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 になってしまった理由ではないかと思わなくもないのですが…