2

NSTask を使用して外部アプリを起動しています。しかし、現時点では、私のアプリはフォーカスを失います。私はこれをしたくありません。他のアプリはファイルにいくつかの情報を書き込むだけで、私のアプリはそれらの情報を読み取って表示します。バックグラウンドで NSTask アプリを起動することは可能ですか?

4

3 に答える 3

0

NSTaskを使用する代わりに、 NSWorkspaceのを使用することをお勧めしますlaunchApplicationAtURL:options:configuration:error:NSWorkspaceLaunchWithoutAddingToRecents | NSWorkspaceLaunchWithoutActivation | NSWorkspaceLaunchAndHide引数として渡すと、options:事実上見えなくなるはずです。(私は明らかにあなたの特定のケースでそれを試していませんが、それはそれが機能することを意図した方法です。)

于 2013-02-13T18:28:04.970 に答える
0

NSTask を開始した後で、単に "performSelector:withObject:afterDelay" を呼び出さないのはなぜですか? これを使用すると、適切な遅延の後、アプリケーションを再アクティブ化するセレクターを呼び出すことができます。ここでは特別なことは何も必要ありません。他のアプリを前面に出してから、自分のアプリを再アクティブ化するだけです。

これは機能します。遅延を必要なものに設定するだけです。

[[NSRunningApplication currentApplication] performSelector:@selector(activateWithOptions:) withObject:[NSNumber numberWithUnsignedInteger:NSApplicationActivateIgnoringOtherApps] afterDelay:5.0];
于 2013-02-13T22:57:43.850 に答える
0

openコマンド ( manpage )を使用してアプリを起動する場合、-gオプションを使用して、アプリがフォアグラウンドにならないようにすることができます。

-g  Do not bring the application to the foreground.

NSTaskそのため、アプリを直接起動するのではなく; 使用openして、エラー、それを開きます。

于 2013-02-13T15:03:21.500 に答える