【问题标题】:Alternatives to Applescript? [closed]Applescript 的替代品? [关闭]
【发布时间】:2013-02-09 20:39:48
【问题描述】:

在编写 Mac 脚本时,是否有 Applescript 的替代品?它的 API 看起来很棒,但是从我目前所读到的内容来看,该语言本身似乎更多地针对非程序员。

对此的深入了解将非常有帮助。

(目前,我正在考虑为 Mac 编写一个平铺窗口管理器。 是的,我知道有些存在,但这将是开源的。 是的,我知道 Xmonad,但它只适用于 X11 窗口。)

谢谢!

【问题讨论】:

  • 对于窗口平铺,可访问性 API 可能是您最好的选择,直接或通过 AppleScriptable System Events 应用程序。四处寻找有关两者的信息,例如:stackoverflow.com/questions/614185/…
  • 老实说,Apple 试图让非技术人员能够理解的语言让像我这样的技术人员非常难以理解。

标签: applescript


【解决方案1】:

在编写 Mac 脚本时,是否有 Applescript 的替代品?

取决于你想做什么。如果您想将 Apple 事件发送到其他应用程序,可以;用于从支持 OSA 的应用程序(邮件规则、文件夹操作等)运行脚本,实际上并非如此。

最好的技术替代品是appscript(我的宝贝),它可用于 10.4+ 上的 Python、Ruby 和 Objective-C。 (还有一个 MacRuby 版本,但我还没有公开发布过。) 功能方面的 appscript 比 AppleScript 稍好,而且它的应用程序兼容性几乎一样好。第三方项目,所以你需要自己安装它(但只要你有 Xcode,这很容易)和 MIT 许可,所以你可以根据需要重新分发它(例如包含在你的应用程序包中)。相当不错的 tool 和文档支持,包括 Matt Neuburg 的 online book,邮件列表支持 Python 和 Ruby 版本,直接电子邮件支持其他版本。

“官方”替代方案是 Apple 的 Scripting Bridge。 API 看起来很像 Cocoa,但实际上只是很多 smoke and mirrors,这最终使其功能不如 AppleScript 并且更容易出现应用程序兼容性问题(并且在出现问题时很难进行故障排除)。工具、文档和社区支持也不是很好(appscript 更好;AppleScript 更好)。 SB 的主要优势在于它包含在 10.5+ 中,因此无需额外安装即可使用。由于其技术缺陷,我不建议将其用于繁重的自动化工作,但对于涉及强制应用程序的适度自动化任务,它可能就足够了。

确实存在其他桥接器(例如 Perl 的 Mac::Glue、RubyOSA),但它们没有那么强大、流行和/或积极支持。

话虽如此,如果您想编写任何严肃的应用程序脚本,您仍然必须学习 AppleScript,因为您可以在其中找到大量文献、示例脚本和社区专业知识。所有这些都是您需要的,因为绝大多数可编写脚本的应用程序都没有充分的文档记录。

【讨论】:

猜你喜欢
  • 2012-06-16
  • 2011-06-16
  • 2011-12-17
  • 2010-10-21
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多