我想在Mac OS X上模拟一个Unicode字符并发送给前台应用程序。我的意思是,我有一个Unicode字符(可以包含阿拉伯文、中文等),比如'a',我想输入它。请注意,我不是试图使用虚拟键或键码。只需要一个字符。
祝好, Peyman Mortazavi
我想在Mac OS X上模拟一个Unicode字符并发送给前台应用程序。我的意思是,我有一个Unicode字符(可以包含阿拉伯文、中文等),比如'a',我想输入它。请注意,我不是试图使用虚拟键或键码。只需要一个字符。
祝好, Peyman Mortazavi
我发现了一个非常好的方法,但还存在一个问题。看一下代码,然后我会写出当前的问题。
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 ,那么它只能在搜索框中工作。请问您能否帮助我将它们组合起来,以便将此事件应用于所有会话。
谢谢, Peyman Mortazavi