2

我的应用程序使用 AppleScript 根据用户的热键更改 iChat 中的状态。一切正常,但是在 iChat 没有运行的情况下,我有一个“iChatAgent”正在运行,它的图标在状态栏中;我的 Dock 中没有 iChat 的图标。

因此,在这种情况下,如果我的应用程序发送 AppleScript 命令来更改 iChat 状态 ( tell application "iChat" set status blah-blah...),它会自动激活 iChat 并且 iChat 的图标会出现在 Dock 中。我不想激活 iChat。我不需要对我的 Dock 进行任何更改。但是我需要在 iChat 不运行时更改它的状态。

我如何通过向 iChatAgent 申请更改状态来做到这一点?有可能吗?

4

1 回答 1

1

iChatAgent是 iChat 5 在 iChat 本身未运行时使用的后台消息传递应用程序。在安装了 FaceTime 的 Snow Leopard 上,以及在 Lion 上,它已被IMAgent取代(/System/Library/PrivateFrameworks/IMCore.framework/imagent.app/请参阅此 Apple 支持社区讨论线程以获得证实)。

这些代理不支持 AppleScript,您可以通过尝试将其添加到 AppleScript 编辑器字典面板来自行检查:您将收到一条错误消息,表明应用程序不可编写脚本。这意味着脚本只能针对 iChat 本身,并且通过扩展,当您这样做时,您无法绕过应用程序启动(这也适用于 iChat 中的脚本插件——它们仅在应用程序运行时触发)。

TL;DR:如果不启动 iChat.app,您将无法通过 AppleScript 设置 iChat 状态

于 2012-04-05T12:37:00.623 回答