获取进程列表并隐藏特定应用程序

时间:2011-06-30 07:30:51

标签: objective-c cocoa macos

如何获取进程列表(在弹出按钮中),然后当用户选择应用程序时,我可以隐藏/终止/最小化/退出应用程序吗?

1 个答案:

答案 0 :(得分:2)

-[NSWorkspace runningApplications]将为您提供NSArrayNSRunningApplication个实例,代表当前正在运行的进程。我不确定是什么原因导致程序从该列表中排除,但它确实包括用户从Finder启动的任何应用程序。它还包括一些你不想搞砸的东西(Finder本身和loginwindow进程),以及不露面的应用程序。

您可以使用filteredArrayWithPredicate:过滤掉这些内容。您要保留的对象的activationPolicyNSApplicationActivationPolicyRegular

对数组进行过滤后,您可以使用bundleIdentifierbundleURLlocalizedName进行搜索,以查找所需的应用。然后根据需要将hideterminate发送到NSRunningApplication个实例。

Apple有一个展示所有这些的示例项目,名为AppList