1

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

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

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

有什么建议吗?

4

2 回答 2

2

文档(强调添加):

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

于 2011-12-06T16:34:15.650 回答
1

窗口服务器不是用户进程。如果它不适用于管理员权限,那么您将根本无法这样做。

于 2011-12-06T16:09:25.963 回答