繁体   English   中英

如何从Adobe Air应用程序在本地计算机上执行.bat文件?

[英]How to executes a .bat file on local machine from adobe air application?

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

尝试这个

此类可能对您有所帮助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)
}
 }
}

请让我知道任何澄清。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM