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

    技术2022-05-19  21

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


    最新回复(0)