我正在运行我们的adobe air应用程序中的.net.exe文件。 .exe文件接收不同的参数。所以当我必须发送新的参数时,我会停止这个过程并重新开始新的参数。我使用的exit()的NativeProcess
方法,但是当我再次启动的EXE它给我如何在Adobe AIR桌面应用程序中重新启动NativeProcess?
Error: Error #3213: Cannot perform operation on a NativeProcess that is already running. at Error$/throwError() at flash.desktop::NativeProcess/start()
我已经初始化的NativeProcess静态变量:
public static var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
public static var process:NativeProcess = new NativeProcess();
然后在点击事件中,我已经叫exe文件
var file:File = File.desktopDirectory;
file = file.resolvePath("C:\\somepath.exe");
var ar:Vector.<String> = new Vector.<String>();
ar.push("0");
ar.push("C:\\temp\\APIData.xml");
nativeProcessStartupInfo.executable = file;
nativeProcessStartupInfo.arguments = ar;
process.start(nativeProcessStartupInfo);
这运行代码绝对好。在另一个click事件我打电话
process.exit()
,然后再次运行exe
var file:File = File.desktopDirectory;
file = file.resolvePath("C:\\somepath.exe");
var ar:Vector.<String> = new Vector.<String>();
ar.push("1");
ar.push("C:\\temp\\APIData.xml");
nativeProcessStartupInfo.executable = file;
nativeProcessStartupInfo.arguments = ar;
process.start(nativeProcessStartupInfo);
但在这个其他点击事件,我得到的NativeProcess的错误已经在运行。有人能帮助我做错了什么吗?