objective-c – 如何从OSX 10.9中的ProcessSerialNum获取PID?
发布时间:2020-12-16 05:07:19 所属栏目:百科 来源:网络整理
导读:在OSX 10.9中将GetProcessPID标记为已弃用以及注释: Use the processIdentifier property of the appropriate NSRunningApplication object. 问题是NSRunningApplication的构造类方法无法通过ProcessSerialNum获取NSRunningApplication,只能通过PID或包名称
在OSX 10.9中将GetProcessPID标记为已弃用以及注释:
问题是NSRunningApplication的构造类方法无法通过ProcessSerialNum获取NSRunningApplication,只能通过PID或包名称获取. 捆绑名称太模糊(可能有多个实例),我没有PID(这是我想要的). 在OSX 10.9中,有没有办法在你有PSN时获得PID? 解决方法
观察NSWorkspaceDidLaunchApplicationNotification通知.
在回调中,获取进程序列号如下: NSDictionary* dictionary = [notification userInfo]; NSNumber* psnLow = [dictionary valueForKey: @"NSApplicationProcessSerialNumberLow"]; NSNumber* psnHigh = [dictionary valueForKey: @"NSApplicationProcessSerialNumberHigh"]; ProcessSerialNumber psn; psn.highLongOfPSN = [psnHigh intValue]; psn.lowLongOfPSN = [psnLow intValue]; NSRunningApplication *newApplication = [dictionary valueForKey:NSWorkspaceApplicationKey]; source (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |