立即从Applescript中的“运行脚本”返回

时间:2010-04-07 18:27:49

标签: xcode macos applescript

我希望能够从另一个AppleScript中运行一个AppleScript,但让它立即返回。

我无法使用“osascript script.scpt&”因为osascript不允许“用户交互”,我希望能够。

所以,我正在寻找相当于:osascript script.scpt&在“运行脚本script.scpt”


澄清澄清:

我有一个运行脚本的NSAppleScript对象 - 没关系,但我想启动脚本并立即返回,继续我正在编写的其余Objective C程序。

现在,OBJC程序一直等到NSAppleScript事件结束。

2 个答案:

答案 0 :(得分:0)

一种方法是确保第二个脚本作为自己的应用程序启动。如果第二个脚本是静态的,只需使用脚本编辑器或osacompile编译一次,然后从第一个脚本启动它。如果你必须动态构建第二个脚本,你可以像这样做一些hacky:

osascript - <<EOF
-- first script ...
do shell script "osacompile -o /tmp/script2.app -e 'display dialog \"Hello, world!\"'; open /tmp/script2.app"
-- first script continues ...
EOF

答案 1 :(得分:0)

可能最简单的方法是使用NSTask来分叉osascript。如果您可以要求Mac OS X 10.6,那么您也可以尝试在单独的线程中使用NSAppleScript,但请注意limitations(这不会自动使旧语言组件和脚本添加线程安全)。