NSRunningApplication не может распознать PID сервера Windows? - PullRequest
1 голос
/ 06 декабря 2011

В моем приложении Какао я обнаруживаю видимые окна и получаю PID их владельцев.Затем для каждого PID я создаю NSRunningApplication объект (используя runningApplicationWithProcessIdentifier:) для получения дополнительной информации (локализованное имя, путь, атрибуты и т. Д.)

Все работает нормально, пока я не попытаюсь создать NSRunningApplication с PID 88который принадлежит (в моем случае) к Window Server.Он просто не создает этот объект и в соответствии с руководством Apple возвращает nil - другими словами: нет процесса с этим PID.

Как это возможно?Если бы его не было, я бы не смог получить его PID, а ps не показал бы его.

Любой совет?

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Из документации (выделение добавлено):

Overview
NSRunningApplication - это класс для управления и предоставления информации для одного экземпляра приложения. Отслеживаются только пользовательские приложения ;это не дает информацию о каждом процессе в системе.

1 голос
/ 06 декабря 2011

Сервер окна не является пользовательским процессом. Если он не работает с привилегиями admin , вы вообще не сможете этого сделать.

...