我想在 Mac OS X 中模拟一个 unicode 字符发送到前台应用程序。 我的意思是我有一个 unicode 字符(可以包含阿拉伯语、中文等),比如“a”,我想输入它。请注意,我并没有尝试使用虚拟键或键码。只有一个字符。
您真诚的, 佩曼莫塔扎维
最佳答案
我找到了一个很好的方法,但仍然存在问题。看看代码然后我写下当前的问题是什么。
CGEventRef downEvt = CGEventCreateKeyboardEvent( NULL, 0, true );
CGEventRef upEvt = CGEventCreateKeyboardEvent( NULL, 0, false );
UniChar oneChar = 'h';
CGEventKeyboardSetUnicodeString( downEvt, 1, &oneChar );
CGEventKeyboardSetUnicodeString( upEvt, 1, &oneChar );
CGEventPost( kCGAnnotatedSessionEventTap, downEvt );
CGEventPost( kCGAnnotatedSessionEventTap, upEvt );
问题是此事件仅限于搜索框等某些 session ,这是因为 kCGAnnotatedSessionEventTap 如果我们将其更改为 kCGSessionEventTap 那么它将仅适用于搜索盒子。你不能帮我把它们结合起来,让它把这个事件应用到每个 session 。
问候, 佩曼莫塔扎维
关于objective-c - 如何使用 Objective-C 在 Mac Os X 中模拟 Unicode Char "key press"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10179995/