Flex - 外部进程仅适用于调试
Flex - external process in only works in debug
我正在努力从 Adobe Air 运行 时间调用外部可执行文件。该应用程序被部署为来自 Air 的本机可执行文件 (.exe)。下面是我用来生成 NativeProcess class 和 运行 外部调用的代码:
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 中的 <supportProfiles>
标记设置为 desktop extendedDesktop 以允许调用本机进程。
编译器还设置为将 exe 部署到应用程序的目录结构中。
我真的很难理解我可以在某处设置什么来让它只在调试模式下触发,而不是在正常情况下启动进程。如有任何建议,我们将不胜感激!
我的问题有两个,我在外部可执行文件中有一些调试代码没有被 Flex UI 处理,导致调用失败。我还进行了其他配置更改以阻止使用正确的标志。添加这些是为了帮助我找出导致调用失败的原因,并且在我解决了传递不正确参数的原始问题后我没有删除它们。
我正在努力从 Adobe Air 运行 时间调用外部可执行文件。该应用程序被部署为来自 Air 的本机可执行文件 (.exe)。下面是我用来生成 NativeProcess class 和 运行 外部调用的代码:
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 中的 <supportProfiles>
标记设置为 desktop extendedDesktop 以允许调用本机进程。
编译器还设置为将 exe 部署到应用程序的目录结构中。
我真的很难理解我可以在某处设置什么来让它只在调试模式下触发,而不是在正常情况下启动进程。如有任何建议,我们将不胜感激!
我的问题有两个,我在外部可执行文件中有一些调试代码没有被 Flex UI 处理,导致调用失败。我还进行了其他配置更改以阻止使用正确的标志。添加这些是为了帮助我找出导致调用失败的原因,并且在我解决了传递不正确参数的原始问题后我没有删除它们。