【问题标题】:Flex - external process in only works in debugFlex - 外部进程仅在调试中有效
【发布时间】:2016-08-16 05:58:44
【问题描述】:

我正在从 Adob​​e Air 运行时调用外部可执行文件。该应用程序部署为来自 Air 的本机可执行文件 (.exe)。下面是我用来生成 NativeProcess 类并运行外部调用的代码:

var file:File = File.applicationDirectory;
file = file.resolvePath("path to exe");

if(file.exists)
    {
        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();

    nativeProcessStartupInfo.executable = file;

    var procArgs:Vector.<String> = new Vector.<String>();
    procArgs[0] = url;
    procArgs[1] = contentType;
    procArgs[2] = postData;

    nativeProcessStartupInfo.arguments = procArgs;

    _process = new NativeProcess();

    try
    {
            _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
            _process.addEventListener(ProgressEvent.STANDARD_INPUT_PROGRESS, onOutputData);
            _process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
            _process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);

            trace("About to call external process");

            _process.start(nativeProcessStartupInfo);

            trace("Called external process");
     }

让可执行文件启动的唯一方法是使用断点并在调试中运行应用程序。

我已将应用程序 xml 中的 &lt;supportProfiles&gt; 标记设置为桌面扩展桌面,以允许调用本机进程。

编译器还设置为将 exe 部署到应用程序的目录结构中。

我真的很难理解我可以在某个地方设置什么来让它只在调试模式下触发,而不是在正常情况下才能启动进程。任何建议将不胜感激!

【问题讨论】:

    标签: apache-flex air


    【解决方案1】:

    我的问题有两个,我在外部可执行文件中有一些调试代码没有被 Flex UI 处理,导致调用失败。我还进行了其他配置更改以阻止使用正确的标志。添加这些是为了帮助我找出导致调用失败的原因,一旦我解决了传递错误参数的原始问题,我就没有删除它们。

    【讨论】:

      猜你喜欢
      • 2019-09-25
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 2017-01-30
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      相关资源
      最近更新 更多