NSRunningApplication无法识别Window Server的PID?

时间:2011-12-06 16:07:51

标签: cocoa process pid nsrunningapplication

在我的Cocoa应用程序中,我正在检测可见窗口并获取其所有者的PID。然后永远PID我创建NSRunningApplication对象(使用runningApplicationWithProcessIdentifier:)来获取其他信息(本地化名称,路径,属性等)。

一切正常,直到我尝试使用PID 88创建NSRunningApplication,它属于(在我的情况下)到Window Server。它只是不创建该对象,并且根据Apple手册它返回nil - 换句话说:没有具有该PID的进程。

怎么可能?如果它不存在,我将无法获得其PID,ps将无法显示它。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

documentation(强调添加):

  

概述
   NSRunningApplication是一个操作和提供应用程序的单个实例的信息的类。 仅跟踪用户应用程序;这不提供有关系统上每个进程的信息。

答案 1 :(得分:1)

窗口服务器不是用户进程。如果它不能与 admin 权限一起使用,那么您根本无法这样做。