我的需求很简单 - 我想从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);
对这个问题有什么看法?我想直接启动外部应用程序而不是使用代理,因为这会降低部署平台之间的复杂性。
答案 0 :(得分:0)
如何最小化应用程序?
NativeApplication.nativeApplication.activeWindow.minimize();