2010-08-13 43 views
0
import flash.desktop.NativeProcess; 
import flash.desktop.NativeProcessStartupInfo; 

if (NativeProcess.isSupported) { 
    var npsi:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
    var processpath:File = File.applicationDirectory.resolvePath("MyApplication.whatever"); 
    var process:NativeProcess = new NativeProcess(); 

    npsi.executable = processpath; 
    process.start(npsi); 
} 

以上只能運行一個子應用程序,但如何運行一個獨立的應用程序(命令)如ipconfig並得到結果呢?如何在Windows中運行「ipconfig」並獲取adobe AIR中的輸出?

回答

0

我不認爲你可以,這是NativeProcess API的自我限制。但是,您可以自己創建一個調用ipconfig並將信息傳遞迴AIR應用程序的Windows二進制文件。

如果創建該二進制文件看起來像個大問題,那麼看看haXexCross,您可以使用與ActionScript相似的語言來完成此操作。

HTH,

胡安

3

你其實可以刮STDOUT和STDERR:

process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); 
process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onError); 
process.addEventListener(ProgressEvent.STANDARD_INPUT_PROGRESS, inputProgressListener); 

public function onError(event:ProgressEvent):void 
{ 
    trace(event); 
    trace(process.standardError.readUTFBytes(process.standardError.bytesAvailable)); 
} 

public function inputProgressListener(event:ProgressEvent):void 
{ 
    process.closeInput(); 
} 

public function onOutputData(event:ProgressEvent):void 
{ 
    trace(event); 
    trace(process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); 
} 

更多信息在:http://help.adobe.com/en_US/as3/dev/WSb2ba3b1aad8a27b060d22f991220f00ad8a-8000.html

和:http://www.as3offcuts.com/2010/08/air-2-native-process-example-mouse-screen-position/

編輯:實現也許你的問題也是h啓動外部應用程序?下面是一個例子如何運行OSX「頂」:

npsi.executable = new File("/usr/bin/top"); 
0

如果你想不知道它位於何處,你可以用參數「/ C」「IPCONFIG.EXE運行cmd.exe的運行IPCONFIG.EXE ......」。當然,這需要知道cmd.exe在哪裏。我剛剛將它與我的AIR應用程序(Windows版本)一起包含在內。

相關問題