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

Javascript 如何将AppleScript/JXA支持添加到非cocoa应用程序?,javascript,applescript,open-source,javascript-automation,Javascript,Applescript,Open Source,Javascript Automation,我正在研究我能为开源做出贡献的事情。我使用的许多自由和开放源码软件的一个痛点是它们不支持脚本。我想至少可以尝试在我使用的一些应用程序中添加一些基本的脚本支持,例如OBS 但是,所有关于添加脚本支持的指南都假定所讨论的应用程序是用Cocoa编写的。我看到的很多自由和开放源码软件都不是。是否有人有一些好的资源来向本机系统服务公开非本机功能,就像脚本编写所需的那样?实现非平凡的Apple事件支持是正确的PITA;因此,如果您必须从头开始在C/C++中实现它,CoCoAscript.framework对

我正在研究我能为开源做出贡献的事情。我使用的许多自由和开放源码软件的一个痛点是它们不支持脚本。我想至少可以尝试在我使用的一些应用程序中添加一些基本的脚本支持,例如OBS

但是,所有关于添加脚本支持的指南都假定所讨论的应用程序是用Cocoa编写的。我看到的很多自由和开放源码软件都不是。是否有人有一些好的资源来向本机系统服务公开非本机功能,就像脚本编写所需的那样?

实现非平凡的Apple事件支持是正确的PITA;因此,如果您必须从头开始在C/C++中实现它,CoCoAscript.framework对于非Cocoa应用程序来说是不可能的,任何第三方框架都将大量过时。现在我甚至不想尝试:AppleScript正在消亡,而JXA已经消亡,苹果对其关于Mac自动化未来的计划保持沉默。如果macOS出现快捷方式,这种情况可能会改变,但在10.15之前不会发生

如果您只想添加真正基本的自动化支持,即不需要“对象模型”,只需要简单的命令,如play FILE/convert FILE,并且应用程序可以很好地与macOS事件循环配合使用,那么安装Apple事件处理程序、解包和打包简单的参数和结果编号并不十分困难,但仍然非常繁琐,通过旧的C Apple事件管理器API创建字符串。这不会太像苹果书,但至少是可以实现的。或者,如果应用程序已经有了自己的内置功能,例如JavaScript脚本支持,那么实现一个do脚本代码[使用参数{ARG1,ARG2,…}]处理程序调用它是一个简单的胜利


至于文档和示例代码,请搜索AEInstallEventHandler并查看出现了什么。不会很好,但这是最好的了。准备好为自己解决这些问题。

谢谢,是的,这更多的是关于获得集成多种语言的经验,因为这实际上是为了提供出色的脚本支持,所以这个答案正是我想要的。弄明白这一点将是一个有趣的挑战!