我试图开始使用AppleEvents。我已经完成了这个简单的注册并处理了日志:
static OSErr HandleOpenApplication(const AppleEvent* event, AppleEvent* ev, SRefCon sr)
{
LOG_HIGH("@@@@@@@@ Got Apple Event @@@@@@@");
return 0;
}
static OSErr InstallAppleEventHandlers()
{
OSErr err = 0;
err = AEInstallEventHandler(typeWildCard, typeWildCard,
NewAEEventHandlerUPP(HandleOpenApplication), 0, false); // 1
require_noerr(err, CantInstallAppleEventHandler);
CantInstallAppleEventHandler:
LOG_HIGH("@@@@@@@@ Registered Apple Event with " << err <<" code @@@@@@@");
return err;
}
我已使用通配符标识符来获取所有事件。
运行我的应用程序后,我获得了成功注册的日志。
然后,我正在运行AppleScript来发送一个事件:
tell application "System Events" to get name of every process
tell application "System Events"
tell process "MyApp"
run
end tell
end tell
但是我没有在我的应用中收到该活动。我错过了什么?谢谢!
答案 0 :(得分:1)
您编写的脚本会将AppleEvent发送到应用程序系统事件,即您要定位的应用程序。所以你需要做的就是将脚本改为:
tell application "MyApp" to launch
此外,您应该回复事件ascr/noop
,而不是****/****
(typewildcard / typewildcard)。