通过 iChatAgent 以编程方式在 iChat 中设置状态

Posted

技术标签:

【中文标题】通过 iChatAgent 以编程方式在 iChat 中设置状态【英文标题】:Set status in iChat by iChatAgent programmatically 【发布时间】:2012-03-02 15:56:53 【问题描述】:

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

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

如何通过我向 iChatAgent 的申请来更改状态?有可能吗?

【问题讨论】:

【参考方案1】:

iChatAgent 是 iChat 本身未运行时 iChat 5 使用的后台消息传递应用程序。在安装了 FaceTime 的 Snow Leopard 和 Lion 上,它已被 IMAgent 取代(/System/Library/PrivateFrameworks/IMCore.framework/imagent.app/ - 请参阅 this Apple Support Communities discussion thread 以获得证实)。

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

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

【讨论】:

我是这么认为的...感谢您确认我的假设!很好的答案!

以上是关于通过 iChatAgent 以编程方式在 iChat 中设置状态的主要内容,如果未能解决你的问题,请参考以下文章

WooCommerce 以编程方式/通过函数创建帐户

Android:我可以通过多少种方式以编程方式获取当前位置

通过以编程方式在横向模式下添加视图

如何以编程方式通过 ios 7+ 中的 mms 发送图像? [关闭]

通过 Chrome 的原生视频播放器以编程方式投射

如何以编程方式通过 Main Activity 在 ViewPager 中更新刷新片段