2011-10-17 9 views
2

私の必要性は簡単です。私はAIRアプリケーションから外部アプリケーションを起動し、AIRアプリケーション自体が終了している間は外部アプリケーションを実行したままにします。AIRアプリケーション自体が存在した後にAIR NativeProcessを実行したままにすることはできますか?

シナリオは、アプリケーション内に「インストール」ボタンがあり、サードパーティのインストーラーを起動します。このプロセス中に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アプリケーションが存在した後にそのアプリケーションを実行したままにしますが、Terminalウィンドウはこの方法で画面に表示されますが、これも受け入れられません。

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

解決策ではありませんが、軽減策:AIRアプリケーションを非表示にしますか? –

答えて

0

アプリケーションの最小化はどうですか?

NativeApplication.nativeApplication.activeWindow.minimize(); 
関連する問題