鉴于流程的PID,我如何检查它是否是一个窗口化的流程?我正在寻找OSX的解决方案。
需要Objective-C / C解决方案。 我在OSX Mountain Lion上。
我将窗口化流程定义为在活动监视器中选择“窗口化流程”选项卡时可以看到的流程。 http://cl.ly/FeXR
答案 0 :(得分:2)
[NSWorkspace runningApplications]
这会将NSArray
中的所有用户应用程序作为具有属性NSRunningApplication
的{{1}}实例返回。
或者您可以直接使用processIdentifier
来获取具有指定PID的应用程序。
以下是示例代码:http://developer.apple.com/library/Mac/#samplecode/AppList/Introduction/Intro.html
通过runningApplicationWithProcessIdentifier:
的{{1}}属性,您可以获得Windowed状态。我修改了activationPolicy
代码,使其只显示窗口化的应用程序,如下所示。这与活动监视器显示的内容相匹配。
特别是,您正在寻找NSRunningApplication
。
请注意这些限制。这仅适用于用户拥有的进程。
所有其他方法均已弃用,将来可能无法使用。不建议使用AppList
和Carbon NSApplicationActivationPolicyRegular
等方法。