4

私が自分自身を終了する場合は、を使用するだけで[NSApp terminate: nil]、非常にうまく機能します。しかし、アクティブモニターなどの別のプロセスを終了したい場合は、どうすればよいですか?

プロセスのリストを取得するには、

NSArray* processlist = [[NSWorkspace sharedWorkspace] runningApplications];

私は正しいですか?killしかし、またはKillProcess(<#const ProcessSerialNumber *inProcess#>)またはまたはそのようなものを使用せずに、Cocoaでプロセスを終了するには、Cocoaのkillpd学習を開始するだけなので、ドキュメントを見つけるのに役立つ簡単なサンプルコードまたはキーワードが必要になる場合があります。ご協力ありがとうございました。

4

1 に答える 1

5

-[NSWorkspace runningApplications]オブジェクトの配列を返しNSRunningApplicationます。 NSRunningApplicationメソッドがあり-[NSRunningApplication terminate]ます。したがって、特定のアプリケーションを探している場合は、次のように終了できます。

-(void)killProcessesNamed:(NSString*)appName
{
    for ( id app in [[NSWorkspace sharedWorkspace] runningApplications] ) 
    {
        if ( [appName isEqualToString:[[app executableURL] lastPathComponent]] ) 
        {
            [app terminate];
        }
    }
}

forceTerminate通常の終了プロセスを行わずにアプリを強制的に終了するように呼び出すこともできます。(変更の保存などは求められません)

NSRunningApplicationバンドル ID または PID に基づいてプロセスを検索しているかどうかに応じて、このプロセスを簡単にするために使用できる他の方法があります。

于 2012-04-16T15:16:00.280 に答える