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

时间:2022-06-01 20:34:56

本次测试使用环境: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测试!

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

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

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

 

 

 

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); 

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

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

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

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