代码之家  ›  专栏  ›  技术社区  ›  PopKernel

如何向非cocoa应用程序添加AppleScript/JXA支持?

  •  0
  • PopKernel  · 技术社区  · 6 年前

    但是,所有添加脚本支持的指南都假设所讨论的应用程序是用Cocoa编写的。我看到的很多自由/开源软件都不是。是否有人拥有一些好的资源,可以像脚本编写那样,将非本机功能公开给本机系统服务?

    1 回复  |  直到 6 年前
        1
  •  1
  •   foo    6 年前

    实施 不平凡的 苹果事件支持是一个正确的PITA;因此,如果你必须从头开始在C/C++中实现(CocoaScripting.framework是非可可应用程序的非启动者,任何第三方框架都将是过时的)。现在我甚至不想尝试:AppleScript正在消亡,JXA已经消亡,而苹果对其未来Mac自动化的计划(如果有的话)保持沉默。这可能会改变,如果/当快捷方式来到macOS,但这不会发生在10.15之前。

    真正地 基本自动化支持(即没有“对象模型”,只是简单的命令,如 play FILE convert FILE )而且该应用程序与macOS事件循环配合得很好,安装Apple事件处理程序并通过旧的C Apple事件管理器API解包和打包简单的参数和结果(数字、字符串)并不是非常困难(尽管仍然非常乏味)。它不会很“AppleScript”,但至少它是可以实现的。或者,如果应用程序已经有了自己的内置(例如JavaScript)脚本支持,则实现 do script CODE [with parameters {ARG1,ARG2,…}]

    至于文档和示例代码,请搜索 AEInstallEventHandler 看看会发生什么。不会很好,但那是最好的。准备好为自己解决很多问题。