【问题标题】:Way to listen in on all Apple Events?收听所有 Apple 活动的方式?
【发布时间】:2010-10-18 05:03:41
【问题描述】:

我正在寻找一种方法来监听任何程序发送给任何其他程序的所有 Apple 事件。曾经有一个应用程序 AEMonitor 可以做到这一点,但它现在已被废弃。

有没有已知的方法可以通过可可、碳等来做到这一点?

非常感谢任何帮助。

--

目标操作系统是 10.6

--

Carification:我希望监控所有的苹果事件,或者至少是其中的大部分。我知道可以启动应用程序并收听其 AE like this。

【问题讨论】:

  • NSDistributedNotificationCenter 是你想要的吗?我猜这是分布式通知,而不是 Apple 事件(或者它们是同一件事?)
  • 否 - 用于 NSDistributedNotifications。一个很好的监控工具是“通知观察者”github.com/kballard/NotificationWatcher
  • 分布式通知和 Apple 事件彼此无关。 Apple Event 转到特定的应用程序(事件的目标);在同一登录会话中向所有应用程序发送分布式通知。
  • 这是否意味着 Apple 事件的方向性使其无法被第三方应用程序监控? (在启动第三方应用程序之前无需先启用 AEDebug)

标签: cocoa macos applescript macos-carbon appleevents


【解决方案1】:

根据我对 AEMonitor 的回忆(我偶尔会想念),它需要重新启动目标应用程序。我敢打赌,这是在设置 macosxhints.com 文章中链接到的环境变量。

【讨论】:

  • 啊。这很令人失望。我想这意味着我的问题的答案是否定的。
  • 也许有什么方法可以启动 OSX,让每个应用都启用 AEDebug?
  • 难道你不能制作一个脚本来检查你的 OS X 安装中的每个应用程序,并用设置 AEDebug 后通过终端启动应用程序的脚本替换应用程序吗? hints.macworld.com/article.php?story=20080809181956219 然后你可以启动任何应用程序,它会在启动前从脚本中自动启用 AEDebug,那么 Bob 确实是你的叔叔。理论上...
  • Andrew, John Gallagher:您可以设置 environment.plist 以包含下次登录所需的环境变量。不过,我不会——输出会太吵。您甚至可能会卡住 syslogd,这取决于在幕后使用了多少 Apple 事件。即使你觉得这很有用,它也只是用于调试——从软件程序中对用户这样做绝对是可怕的。
  • 这是一个开发工具,而不是软件的实际发布。
猜你喜欢
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多