我希望能够从另一个AppleScript中运行一个AppleScript,但让它立即返回。
我无法使用“osascript script.scpt&”因为osascript不允许“用户交互”,我希望能够。
所以,我正在寻找相当于:osascript script.scpt&在“运行脚本script.scpt”
中澄清澄清:
我有一个运行脚本的NSAppleScript对象 - 没关系,但我想启动脚本并立即返回,继续我正在编写的其余Objective C程序。
现在,OBJC程序一直等到NSAppleScript事件结束。
答案 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(这不会自动使旧语言组件和脚本添加线程安全)。