0

プロセスのPIDが与えられた場合、それがウィンドウ化されたプロセスであるかどうかを確認するにはどうすればよいですか?OSXでの解決策を探しています。

Objective-C/Cソリューションが求められています。私はOSXMountainLionにいます。

ウィンドウ化されたプロセスを、アクティビティモニターで[ウィンドウ化されたプロセス]タブが選択されたときに表示されるプロセスとして定義しています。http://cl.ly/FeXR

4

1 に答える 1

2
[NSWorkspace runningApplications] 

これは、プロパティを持つ のNSArrayインスタンスとして、すべてのユーザー アプリケーションを返します。NSRunningApplicationprocessIdentifier

または、runningApplicationWithProcessIdentifier:直接使用して、指定された PID を持つアプリケーションを取得できます。

サンプル コードは次のとおりです: http://developer.apple.com/library/Mac/#samplecode/AppList/Introduction/Intro.html

activationPolicyのプロパティを介してNSRunningApplication、ウィンドウ化された状態を取得できます。AppList以下に示すように、ウィンドウ化されたアプリケーションのみを表示するようにコードを変更しました。これは、アクティビティ モニターが示す内容と一致します。

ここに画像の説明を入力

特に、探しているのはNSApplicationActivationPolicyRegular.

ただし、制限に注意してください。これは、ユーザー所有のプロセスに対してのみ機能します。

他のすべてのメソッドは推奨されておらず、将来的には機能しなくなる可能性があります。GetBSDProcessListや Carbon のような方法GetProcessInformationは推奨されなくなりました。

于 2012-09-06T19:08:29.653 に答える