您的位置:首页 > 大数据 > 人工智能

AIR 调用外部exe和bat文件的方法

2011-03-05 14:12 113 查看
本次测试使用环境:Flex 4.0SDK + Flash CS5 IDE开发环境开发,根据AIR2.0支持本地应用程序的原则!

1. 新建一个AIR2.0文档

2. 场景中拖入一个按钮 并且实例名称为Btn,设置文档类CallEXE

3. 在文档类中输入以下代码:
package {
import flash.display.MovieClip;
import flash.desktop.NativeApplication;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;

import flash.filesystem.File;
import flash.desktop.NativeProcessStartupInfo;
import flash.desktop.NativeProcess;

public class CallEXE extends MovieClip
{
private var file:File=new File();
private var nativeProcessStartupInfo:NativeProcessStartupInfo;

public function CallEXE():void
{
//使用静态属性 NativeApplication.nativeApplication 获取应用程序的 NativeApplication 实例
//指定在关闭所有窗口后是否应自动终止应用程序。
/*当 autoExit 为 true(默认值)时,如果关闭了所有窗口,则应用程序将终止。调度 exiting 和 exit 事件。如果 autoExit 为 false,则必须调用 NativeApplication.nativeApplication.exit() 才能终止应用程序。*/
NativeApplication.nativeApplication.autoExit=true;
//调用的文件名称
file=file.resolvePath("C:/windows/notepad.exe");
trace("file :",file.nativePath);
nativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
Btn.addEventListener(MouseEvent.CLICK, runTest);
}

private function runTest(event:MouseEvent):void
{
var process = new NativeProcess();
process.start(nativeProcessStartupInfo);
}
}

}

4. 调试AIR应用程序的时候,首先打开AIR2.0发布设置一下,点击确定

5. 会发现本程序目录下有一个CallEXE-app.xml,使用记事本或者DW打开
在<application xmlns="http://ns.adobe.com/air/application/2.0">后面加入:
<supportedProfiles>extendedDesktop </supportedProfiles>
并且保存!

6. 回到Flash CS5 IDE ,Ctrl+Enter测试!



7. 发布的时候,需要勾选以下设置,只能发布exe的时候能调用应用程序,而air不能。



AIR调用bat文件,需要先调用C:/WINDOWS/system32/cmd.exe文件,再把bat文件作为其执行参数传入。
var cmdFile:File=new File();
cmdFile = cmdFile.resolvePath("C://WINDOWS//system32//cmd.exe");

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = cmdFile;

var processArgs:Vector.<String> = new Vector.<String>();
processArgs[0] = "/c C://TEST.BAT";
nativeProcessStartupInfo.arguments=processArgs;
var process = new NativeProcess();
process.start(nativeProcessStartupInfo);







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: