0
如何從AIR本機進程調用AppleScript進程?如何從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 HardDrive> 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腳本的任何應用程序的參數。這使得這更像是一個'蘋果'問題,所以也許你應該這樣做。 – RIAstar 2012-04-09 11:10:11
已添加。在網上的一些地方我看到了這個評論,「將osascript設置爲nativeProcess可執行文件」,但沒有給出代碼。看來osascript會以scpt腳本作爲參數。在所有例子中,一個文件被創建爲指向源文件作爲可執行文件,但我無法找到該文件,因此這篇文章。 – 2012-04-09 17:24:52
看起來這個'osascript'在OS的classpath上,因此我懷疑你只需要執行'nativeProcessStartupInfo.executable =「osascript」;'然後'processArgs [0] =「\ path \ to \ MyScript .scpt「;'。 – RIAstar 2012-04-09 20:28:58