我正在使用 NodeJS 执行一个 Applescript 应用程序,如下所示:
var child = require('child_process').exec('open myApp.app');
child.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
child.stdout.on('end', function (data) {
console.log('end: ' + data);
});
child.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
苹果脚本:
tell application "Final Cut Pro" to activate
tell application "System Events" to keystroke "2" using command down
tell application "System Events"
tell process "Final Cut Pro"
tell menu bar 1
tell menu bar item "File"
tell menu "File"
tell menu item "Export XML..."
click
end tell
end tell
end tell
end tell
tell its front window
click button "Save"
click button "Replace" of sheet 1
end tell
end tell
end tell
节点代码从 node-webkit (nwjs) 应用程序执行。Applescript 应用程序在 ScriptEditor 中运行以及从 nwjs 应用程序调用时都可以工作。
我在最后两个事件处理程序中没有得到任何回报。前两个分别输出:
undefined
0
通过故意编写错误的 Applescript 代码来强制出错不会导致 node.js 错误事件处理程序中的任何输出。我的问题是:如何将 Applescript 的输出返回到事件处理程序中?更改以下顺序或注释掉前两个没有帮助。