我开发了守护进程,每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);