2012-04-09 17 views
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 
+0

我不知道蘋果的第一件事,但在我看來,「MyScript.scpt」不是可執行文件本身(它只是一個腳本文件,沒有編譯代碼)。所以我認爲它的路徑應該作爲運行這些Apple腳本的任何應用程序的參數。這使得這更像是一個'蘋果'問題,所以也許你應該這樣做。 – RIAstar 2012-04-09 11:10:11

+0

已添加。在網上的一些地方我看到了這個評論,「將osascript設置爲nativeProcess可執行文件」,但沒有給出代碼。看來osascript會以scpt腳本作爲參數。在所有例子中,一個文件被創建爲指向源文件作爲可執行文件,但我無法找到該文件,因此這篇文章。 – 2012-04-09 17:24:52

+0

看起來這個'osascript'在OS的classpath上,因此我懷疑你只需要執行'nativeProcessStartupInfo.executable =「osascript」;'然後'processArgs [0] =「\ path \ to \ MyScript .scpt「;'。 – RIAstar 2012-04-09 20:28:58

回答

0

回答已添加到原始文章。