AIR应用程序本身存在后,我可以保持AIR NativeProcess运行吗?

时间:2011-10-17 19:10:36

标签: air

我的需求很简单 - 我想从AIR应用程序启动外部应用程序,在AIR应用程序自身退出时让外部应用程序继续运行。

该方案是应用程序内部的“安装”按钮,用于启动第三方安装程序 - AIR应用程序需要在此过程中关闭。

我实际启动NativeProcess对象的代码很好,该过程启动并可以使用。但是,如果用户手动关闭AIR应用程序,或者在通过ActionScript启动外部进程后尝试关闭AIR应用程序,则外部应用程序几乎立即就存在。

一些示例代码:

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = File.applicationDirectory.resolvePath("My Great Application");
var process:NativeProcess = new NativeProcess();
process.start(nativeProcessStartupInfo);

// Either one of the two calls following will fail with the same result
NativeApplication.nativeApplication.exit()
this.nativeWindow.close();

我还尝试了另一种方法,在AIR应用程序存在后使用排序代理保持外部应用程序打开。在Mac上,我正在使用/usr/bin/open命令。 /usr/bin/open确实打开外部应用程序并在AIR应用程序存在后保持运行,但是使用这种方法在屏幕上显示终端窗口,这也是不可接受的。

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = new File("/usr/bin/open");
var args:Vector.<String> = new Vector.<String>();
args.push(file.nativePath);
nativeProcessStartupInfo.arguments = args;
var process:NativeProcess = new NativeProcess();
process.start(nativeProcessStartupInfo);

对这个问题有什么看法?我想直接启动外部应用程序而不是使用代理,因为这会降低部署平台之间的复杂性。

1 个答案:

答案 0 :(得分:0)

如何最小化应用程序?

NativeApplication.nativeApplication.activeWindow.minimize();