加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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标记为已弃用以及注释:

Use the processIdentifier property of the appropriate
NSRunningApplication object.

问题是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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读