在我的Cocoa应用程序中,我正在检测可见窗口并获取其所有者的PID。然后永远PID我创建NSRunningApplication
对象(使用runningApplicationWithProcessIdentifier:
)来获取其他信息(本地化名称,路径,属性等)。
一切正常,直到我尝试使用PID 88创建NSRunningApplication
,它属于(在我的情况下)到Window Server。它只是不创建该对象,并且根据Apple手册它返回nil
- 换句话说:没有具有该PID的进程。
怎么可能?如果它不存在,我将无法获得其PID,ps
将无法显示它。
有什么建议吗?
答案 0 :(得分:2)
从documentation(强调添加):
概述
NSRunningApplication
是一个操作和提供应用程序的单个实例的信息的类。 仅跟踪用户应用程序;这不提供有关系统上每个进程的信息。
答案 1 :(得分:1)
窗口服务器不是用户进程。如果它不能与 admin 权限一起使用,那么您根本无法这样做。