osx – 用于在沙盒环境中激活其他应用程序菜单项的CGEventPostToPSN()的替代方案?

osx – 用于在沙盒环境中激活其他应用程序菜单项的CGEventPostToPSN()的替代方案?,第1张

概述我有这个应用程序,我需要激活其他应用程序的菜单项(如打印cmd p)从我的应用程序。现在我正在使用CGEventPostToPSN()来完成这个工作,它的工作正常,但是当我激活沙盒时,它停止工作。 CGEventPostToPSN(&psn, keyDownEvent);CFRelease(keyDownEvent);CGEventPostToPSN(&psn, keyUpEvent);CF 我有这个应用程序,我需要激活其他应用程序的菜单项(如打印cmd p)从我的应用程序。现在我正在使用CGEventPosttopSN()来完成这个工作,它的工作正常,但是当我激活沙盒时,它停止工作。

CGEventPosttopSN(&psn,keyDownEvent);CFRelease(keyDownEvent);CGEventPosttopSN(&psn,keyUpEvent);CFRelease(keyUpEvent);

我现在的问题是当我需要启用沙盒时,该怎么办?我听到很多关于Accessibility API,但我无法找出如何激活其他应用程序的菜单项。我很感谢有关这个问题的任何答案。

法比安

解决方法 在沙盒环境中,您仍然可以将Apple Events发送到另一个应用程序,您只需要为应用程序申请“Apple Event Temporary Exception”即可。这在Apple的 Element Key Reference“Apple Event Temporary Exception”一节中有详细介绍。

Apple Event Temporary Exception
When you adopt App SandBox,your app retains the ability to:
● Receive Apple events
● Send Apple events to itself
● Respond to Apple events it receives
However,with App SandBox you cannot send Apple events to other apps unless you configure the apple-events temporary exception enTitlement.

For each app you want to send Apple events to,specify the app’s bundle IDentifIEr,in all lowercase characters,as a string value for this enTitlement key’s value array. For example,to enable sending Apple events to iPhoto from your app,use the string value com.apple.iphoto.

EnTitlement key Capability
com.apple.security.temporary-exception.apple-events Enables sending of Apple events to one or more destination apps.

据我所知,苹果在这方面并没有明确定义“临时”,但是一致认为,苹果现在正在允许这样做,但是某些未来的应用程序商店或Mac OS X更新可能会消除这样做的能力。

请注意,您必须事先明确说明您需要将事件发送到的应用程序 – 这不能在您的应用程序或用户的运行时动态选择。

总结

以上是内存溢出为你收集整理的osx – 用于在沙盒环境中激活其他应用程序菜单项的CGEventPostToPSN()的替代方案?全部内容,希望文章能够帮你解决osx – 用于在沙盒环境中激活其他应用程序菜单项的CGEventPostToPSN()的替代方案?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1037878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存