- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Mac 上编写脚本时,除了 Applescript 之外还有其他选择吗?它的 API 看起来很棒,但从我到目前为止所读到的内容来看,该语言本身似乎更多地针对非程序员。
深入了解这一点将非常有帮助。
(目前,我正在考虑为 Mac 编写一个平铺窗口管理器。是的,我知道有些存在,但这将是开源的。是的,我知道 Xmonad,但它只支持 X11 windows。)
谢谢!
最佳答案
When it comes to scripting the Mac, are there alternatives to Applescript?
取决于你想做什么。如果您想将 Apple 事件发送到其他应用程序,可以;用于从支持 OSA 的应用程序(邮件规则、文件夹操作等)运行脚本,但实际上并非如此。
最好的技术替代方案是 appscript (我的宝贝),可用于 10.4+ 上的 Python、Ruby 和 Objective-C。 (还有一个 MacRuby 版本,但我还没有公开发布它。)就功能而言,appscript 比 AppleScript 稍好一些,而且它的应用程序兼容性也几乎一样好。第三方项目,因此您需要自己安装它(但只要您有 Xcode,这就很容易了)并获得 MIT 许可,以便您可以根据需要重新分发它(例如包含在您的应用程序包中)。相当不错tool和文档支持,包括online book作者:Matt Neuburg,提供对 Python 和 Ruby 版本的邮件列表支持以及对其他版本的直接电子邮件支持。
“官方”替代方案是 Apple 的 Scripting Bridge 。该 API 看起来非常像 Cocoa,但实际上只是很多 smoke and mirrors这最终使它的能力不如 AppleScript,并且更容易出现应用程序兼容性问题(并且在出现问题时很难进行故障排除)。工具、文档和社区支持也不是那么好(appscript 更好;AppleScript 更好)。 SB 的主要优点是它包含在 10.5+ 中,因此无需额外安装即可使用。由于其技术缺陷,我不会推荐它用于重型自动化工作,但对于涉及强制应用程序的适度自动化任务,它可能就足够了。
其他桥确实存在(例如 Perl 的 Mac::Glue、RubyOSA),但它们的功能不那么强大、不那么流行和/或得到积极支持。
尽管如此,如果您想做任何严肃的应用程序脚本编写,您仍然需要学习 AppleScript,因为您可以在其中找到大量文献、示例脚本和社区专业知识。所有这些都是您所需要的,因为大多数可编写脚本的应用程序的文档记录都不足。
关于applescript - Applescript 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2164410/
还有人在用applescript吗,苹果把文档存档了,好久没更新语言了。这是否意味着语言已死? 最佳答案 自从苹果在 2016 年解散 Mac 自动化团队并(迟迟)解雇了负责它的产品经理以来,整个 A
我无法弄清楚如何检测 AppleScript 中按下的键以及如何延迟直到该键被释放。我想切换缩放,我拥有其他一切(我认为)。这是我当前的代码 on idle set ztoggle to 0
是否可以为使用 AppleScript 创建的应用程序保存某种设置? 设置应在脚本开始时加载,并在脚本结束时保存。 例子: if loadSetting("timesRun") then se
我正在尝试显示我选择的文件的扩展名。我做错了什么? set theFile to (choose file with prompt "Select a file to transfer:")
我正在尝试制作一个将在后台运行并且每周只在特定时间执行一次的 applescript,有什么建议吗? 最佳答案 您可能想要的是 idle handler .首次打开 AppleScript 应用程序时
我希望能够引用与 Controller 位于同一目录中的模型文件。 最初,它们位于项目的根文件夹中,但当它们被编译(使用 osacompile)时,它们都将位于 Controller.scptd/Co
我不知道如何使用 AppleScript,一开始我是如何让我的小 bash 脚本工作的,这超出了我的能力。我目前正在使用 AppleScript 来运行我的 bash 脚本,它工作得非常好。它在下面。
我有一系列 AppleScript 命令需要在一行 AppleScript 中实现。代码如下。 delay 2 tell application "System Events" to keystrok
在 VBA 中,用不同的子字符串替换子字符串非常容易,例如 objMsg.Body = Replace(objMsg.Body, ""在电子邮件正文中使用当前月份。我以前见过与此类似的问题,但它们已经
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我已被任命创建一个必须 当网页加载完后,显示一个对话框,显示"The webpage has finished loading." 确定当前正在下载的项目数量 对于数字1,我尝试做if the U
我有一个用于创建作业文件夹的 Applescript。 Applescript 要求提供项目名称和文件夹的存储位置。输入作业名称和文件夹位置后,脚本会创建主文件夹和四个子文件夹。 现在我希望脚本在当前
我有一个字符串,其中包含要删除的非法字符,但我不知道可能存在哪种字符。 我建立了一个我不希望被过滤的字符列表,并建立了这个脚本(来自我在网络上找到的另一个脚本)。 on clean_string(Th
我很困惑 - 我已经用谷歌搜索了一个小时,并尝试了大约十种不同形式的 set posixDirectory to POSIX path of (parent of (path to aFile) as
我在 Automator 中有一个小的 applescript: do shell script "osascript ~/Focus-On.scpt" delay 60 do shell scrip
我想打开一个默认为应用程序设置文件夹的文件夹: /Users/XXX/Library/Application Support/Tunnelblick/Configurations 我不想“硬编码”“X
我试图找出最前面的应用程序 x 是什么,运行脚本,然后使用 applescript 将 x 设置为最前面的应用程序。 tell application "System Events" set
有一个 AppleScript 方法: on displayError(theErrorMessage) display dialog theErrorMessage return "
我正在尝试编写一个脚本来记录当前应用程序、切换到另一个应用程序、执行一些任务并返回到原始应用程序。这就是我所拥有的 set currentApp to my getCurrentApp() activ
我正在尝试根据其文本使用 AppleScript 选择大纲的特定行。 这是我正在考虑的(但不起作用): repeat with aRow in rows of outline 1 of scroll
我是一名优秀的程序员,十分优秀!