【问题标题】:How do you call an AppleScript process from AIR?如何从 AIR 调用 AppleScript 进程?
【发布时间】:2012-04-09 01:19:24
【问题描述】:

如何从 AIR 本机进程调用 AppleScript 进程?

背景: 我创建了一个 script.scpt 文件并将其放在项目的根 src 目录中。

我遇到了这个错误:

Error: Error #3219: The NativeProcess could not be started. 'launch path not accessible'

我有什么:

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("MyScript.scpt");
var processArgs:Vector.<String>;

nativeProcessStartupInfo.executable = file;
nativeProcessStartupInfo.workingDirectory = File.applicationDirectory;

processArgs = new Vector.<String>();
processArgs[0] = "foo";

nativeProcessStartupInfo.arguments = processArgs;

process = new NativeProcess();
process.start(nativeProcessStartupInfo);

已解决
为了让它工作,我需要“osascript”的绝对路径,这是运行脚本的命令。在这种情况下,可以在(以及大量其他好东西)中找到该命令
Macintosh 硬盘 > usr > bin > osascript

注意:“usr”目录是隐藏的。路径是“/usr/bin/osascript”

var file:File = File.applicationDirectory.resolvePath("/usr/bin/osascript");

之后,我将脚本文件名作为参数传递。它还需要将工作目录设置为脚本的目录,否则您会得到:

  ERROR - osascript: script.scpt: No such file or directory

【问题讨论】:

  • 我不知道苹果的第一件事,但在我看来“MyScript.scpt”本身并不是可执行文件(它只是一个脚本文件,没有编译代码)。所以我想它的路径应该作为运行这些 Apple 脚本的任何应用程序的参数给出。这使得这更像是一个“苹果”问题,所以也许你应该这样标记它。
  • 已添加。在网上的一些地方,我看到了这条评论,“将 osascript 设置为 nativeProcess 可执行文件”,但没有给出代码。 osascript 似乎会将 scpt 脚本作为参数。在所有示例中,创建了一个文件以将源指向可执行文件,但我找不到该文件,因此这篇文章。
  • 看起来这个“osascript”在操作系统的类路径上,因此我怀疑你只需要先做nativeProcessStartupInfo.executable = "osascript";然后processArgs[0] = "\path\to\MyScript.scpt";
  • 我的猜测是您的脚本不在正确的目录中。 File.applicationDirectory 最有可能指向 bin-debug,因此您的文件也应该在那里,而不是在项目 src 中。
  • 谢谢大家。解决了。可执行文件需要设置为包含命令的有效完整路径的文件,无论它是否位于 OS 类路径中,这对 Apple 开发人员来说可能很明显。 :)

标签: flash apache-flex air applescript


【解决方案1】:

答案已添加到原始帖子中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多