2010-08-19 55 views
3

我想以编程方式从我的flex应用程序执行CMD命令。类似于如何使用actionscript在flex中执行CMD命令?

> mediaplayer.exe "mySong.mp3" 

我也尝试过使用fscommand,但没有成功。虽然谷歌搜索,我了解到,它不支持的AIR。我想知道是否有任何其他执行命令的选项。谢谢...

回答

7

您需要使用NativeProcess这是只有在AIR 2.0+

可用这应该做的伎俩:

if(NativeProcess.isSupported) 
{ 
    var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 

    var mp:File = new File(); 
    mp = mp.resolvePath('native\path\to\mediaplayer.exe'); 

    nativeProcessStartupInfo.executable = mp; 

    var args:Vector.<String> = new Vector.<String>(); 

    args.push('mySong.mp3'); 

    nativeProcessStartupInfo.arguments = args; 

    var process:NativeProcess = new NativeProcess(); 

    process.start(nativeProcessStartupInfo); 

} 

另外,还要确保您的app.xml文件包含此:

<supportedProfiles>extendedDesktop</supportedProfiles> 
+0

感谢Alxx和John。这两个答案实际上帮助了我。但我只能接受一个。 :( @John:只有当'extendedDesktop'独立于节点时,该应用才能正常工作。与'desktop'一起给出的是抛出'当前配置文件错误中不支持'。 – Goje87 2010-08-20 09:32:32

+0

@ Goje87感谢您的反馈,我更新了我的回答以反映这一点。 – 2010-08-20 13:16:34

+0

是否有可能在Flex应用程序中捕获命令行窗口的响应。 – 2015-06-09 02:02:23

2

它由AIR 2.0的支持,看到 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/NativeProcess.html

而且,你不应该部署您的应用程序作为.air文件,但为了的NativeProcess本机安装工作(与ADT来自AIR SDK的控制台工具)。途中有几个问题,但可以完成。 在开发中,您可以轻松测试NativeProcess。

+0

这是一个将.air文件转换为本机安装程序的应用程序:http://www.webkitchen.be/package-assistant-pro/ – 2010-08-20 13:18:34