首页 > 解决方案 > 后台进程的目标 C 代码

问题描述

我使用 NSApplication 和 NSWorkspace 来获取正在运行的应用程序列表。

但它只给我从管理员那里激活的应用程序,而不是在后台运行的根进程。

我想获取所有正在运行的进程的列表,并在新进程产生后立即更新该列表。

我不喜欢使用NSTask和解析输出。

有解决办法吗?

NSArray * runningapps = [[NSWorkspace sharedWorkspace] runningApplications];

标签: objective-cxcodemacosnsarraynsworkspace

解决方案


要访问根进程列表,您需要执行与ps命令非常相似的操作。如果你想去,去研究这个工具的源代码:

https://opensource.apple.com/source/adv_cmds/adv_cmds-172/ps/

但是,正如您所看到的,这并不容易。因此,如果您不想重新发明轮子,我只需解析ps命令的输出,grep否则您将需要编写自己的代码来做您想做的事情。


推荐阅读