在OS X中切换到另一个用户时,获取当前前台应用程序的PID不起作用

时间:2014-07-01 19:06:47

标签: objective-c macos process daemon

我开发了守护进程,每10秒检查一次当前应用程序的PID。即使在用户之间切换之后,守护进程仍然在OS X启动后一直存在。 问题是当我切换到另一个用户时,下面的功能总是将PID返回为" 0"。 这是一个代码:

pid_t pid = [[[NSWorkspace sharedWorkspace] frontmostApplication] processIdentifier];

如何解决以下问题?

编辑:还尝试使用Carbon:

#import <Carbon/Carbon.h>

ProcessSerialNumber psn = { 0L, 0L };
OSStatus err = GetFrontProcess(&psn);

CFStringRef processName = NULL;
err = CopyProcessName(&psn, &processName);
NSLog(@"PID: %s", CFStringGetCStringPtr(processName, NULL));

CFRelease(processName);

0 个答案:

没有答案