GetProcessPID
在 OSX 10.9 中被标记为已弃用,并附有注释:
使用适当的 processIdentifier 属性
NSRunningApplication 对象。
问题是构造类方法NSRunningApplication
没有办法获得NSRunningApplication
by a ProcessSerialNum
,仅通过 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 https://discussions.apple.com/thread/5773997?tstart=0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)