6

我想在 Mac OS X 中模拟一个 unicode 字符以发送到前台应用程序。我的意思是我有一个 unicode 字符(可以包含阿拉伯语、中文等),比如“a”,我想输入它。请注意,我没有尝试使用虚拟键或键码。只有一个字符。

此致,佩曼·莫尔塔扎维

4

1 回答 1

7

我找到了一个非常好的方法,但仍然存在问题。看看代码然后我写什么是当前的问题。

    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 );

问题是这个事件仅限于搜索框之类的某些会话,这是因为如果我们将 kCGAnnotatedSessionEventTap 更改为kCGSessionEventTap那么它将仅适用于搜索框。你不能帮我把它们结合起来,让它把这个事件应用到每个会话中。

问候,佩曼·莫尔塔扎维

于 2012-04-18T06:02:26.040 回答