【问题标题】:How to executes a .bat file on local machine from adobe air application?如何从 adobe air 应用程序在本地计算机上执行 .bat 文件?
【发布时间】:2012-11-27 07:52:37
【问题描述】:

我正在使用 flex4.6,我想从 ma air 应用程序运行一个 .bat 文件,有什么帮助吗?

【问题讨论】:

    标签: apache-flex air window adobe


    【解决方案1】:
    【解决方案2】:

    试试这个

    这个类可能对你有帮助 my_command.bat echo "Hello Native Process"

    在运行应用程序(Projectname-app.xml)之前检查supportedProfiles标签

    桌面扩展桌面移动设备扩展移动设备

    扩展桌面

    package
    {
    
      import flash.desktop.NativeProcess;
    import flash.desktop.NativeProcessStartupInfo;
    import flash.events.ProgressEvent;
    import flash.filesystem.File;
    
    import mx.controls.Alert;
    
    public class PlatformPackaging
    {
        private var nativeProcess:NativeProcess;
        private var isErrorOccured:Boolean;
    
        private var batFile:File;
        private var cmdFile:File;
    
        private function get isWindows():Boolean
        {
            return true;
        }
    
        public function PlatformPackaging()
        {
        }
    
        public function start(targetPlatform:String):void
        {
            if(isWindows)
            {
                batFile = File.applicationDirectory.resolvePath("publish/my_command.bat");
                cmdFile = new File("c:\\Windows\\System32\\cmd.exe");
            } 
    
            proceedToPackaging();
        }
    
    
        private function proceedToPackaging():void {
    
            var processArgs:Vector.<String> = new Vector.<String>;
    
            processArgs.push("/c");
            processArgs.push(batFile.nativePath);
    
            var workingDirectory:File = File.applicationDirectory.resolvePath("publish/");
            var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
    
            nativeProcessStartupInfo.arguments = processArgs;
            nativeProcessStartupInfo.executable = cmdFile;
            nativeProcessStartupInfo.workingDirectory = workingDirectory;
    
            nativeProcess = new NativeProcess();
            nativeProcess.addEventListener(ProgressEvent.STANDARD_ERROR_DATA,onStandardErrorOutputDataHandler);
            nativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA,onStandardOutputDataHandler);
            nativeProcess.start(nativeProcessStartupInfo);
        }
    
        private function onStandardErrorOutputDataHandler(event:ProgressEvent) : void
        {
            var certResponse:String = nativeProcess.standardError.readUTFBytes(nativeProcess.standardError.bytesAvailable);
    
            trace(certResponse);
            nativeProcess.removeEventListener(ProgressEvent.STANDARD_ERROR_DATA,onStandardOutputDataHandler);
            nativeProcess.exit();
        }
    
        Alert.show(certResponse,'Error');
    }
    
    protected function onStandardOutputDataHandler(event:ProgressEvent):void
    {
        var status:String = nativeProcess.standardOutput.readUTFBytes(nativeProcess.standardOutput.bytesAvailable);
    
        Alert.show(status)
    }
     }
    }
    

    请让我知道任何澄清。

    【讨论】:

    • 嘿,raja,上面的代码在我的 .as 类 n 中显示错误,显示:- protected 属性只能用于类属性定义。最后一个函数 onStandardOutputDataHandler。
    • 哎呀!。更正后请放两个大括号
    • 另外请确保您必须在 adobe air 项目的 src 文件夹中创建发布目录(其中包含我们的 .bat 文件)。如果您遵循上述课程。
    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多