我试图检测特定应用程序何时启动.
目前我正在使用NSWorkspace,注册"确实启动应用程序"通知.我还使用该runningApplications方法来获取应用启动时当前正在运行的应用.
对于大多数应用程序,应用程序包的名称就足够了.我有一个"已知应用程序"的plist,我用通知中传递的名称交叉检查.
这可以正常工作,直到您遇到一个应用程序作为代理,使用命令行参数启动另一个应用程序.
示例:Mac上新发布的Portal没有专用的应用程序包.Steam可以创建一个快捷方式,只需hl2_osx使用-game参数和portal参数启动应用程序即可.
由于更多基于源的游戏正在前往Mac,我想他们将使用相同的方法启动,有效地运行hl2_osx带有-game参数的应用程序.
有没有一种很好的方法来使用Cocoa API获取参数列表(及其参数)?
NSProcessInfo 接近,提供`-arguments'方法,但只为自己的进程提供信息......
NSRunningApplication 提供了使用PID获取任意应用程序信息的能力,但没有命令行参数...
有没有什么能填补两者之间的空白?
我试图不去产生NSTask运行ps -p [pid]和解析输出的路线......我更喜欢更高级别的东西.
我正在开发一个项目,我有一些PID,我必须找出哪些是僵尸进程,然后杀死他们的父进程,以杀死最初的僵尸进程.我不确定是否有任何方法可以找出给定PID的PPID是什么.任何帮助,将不胜感激.