プロセスのPIDが与えられた場合、それがウィンドウ化されたプロセスであるかどうかを確認するにはどうすればよいですか?OSXでの解決策を探しています。
Objective-C/Cソリューションが求められています。私はOSXMountainLionにいます。
ウィンドウ化されたプロセスを、アクティビティモニターで[ウィンドウ化されたプロセス]タブが選択されたときに表示されるプロセスとして定義しています。http://cl.ly/FeXR
プロセスのPIDが与えられた場合、それがウィンドウ化されたプロセスであるかどうかを確認するにはどうすればよいですか?OSXでの解決策を探しています。
Objective-C/Cソリューションが求められています。私はOSXMountainLionにいます。
ウィンドウ化されたプロセスを、アクティビティモニターで[ウィンドウ化されたプロセス]タブが選択されたときに表示されるプロセスとして定義しています。http://cl.ly/FeXR
[NSWorkspace runningApplications]
これは、プロパティを持つ のNSArray
インスタンスとして、すべてのユーザー アプリケーションを返します。NSRunningApplication
processIdentifier
または、runningApplicationWithProcessIdentifier:
直接使用して、指定された PID を持つアプリケーションを取得できます。
サンプル コードは次のとおりです: http://developer.apple.com/library/Mac/#samplecode/AppList/Introduction/Intro.html
activationPolicy
のプロパティを介してNSRunningApplication
、ウィンドウ化された状態を取得できます。AppList
以下に示すように、ウィンドウ化されたアプリケーションのみを表示するようにコードを変更しました。これは、アクティビティ モニターが示す内容と一致します。
特に、探しているのはNSApplicationActivationPolicyRegular
.
ただし、制限に注意してください。これは、ユーザー所有のプロセスに対してのみ機能します。
他のすべてのメソッドは推奨されておらず、将来的には機能しなくなる可能性があります。GetBSDProcessList
や Carbon のような方法GetProcessInformation
は推奨されなくなりました。