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

标签 objective-c cocoa macos

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

最佳答案

-[NSWorkspace runningApplications]会给你一个 NSArray NSRunningApplication代表当前正在运行的进程的实例。我不太确定是什么原因导致程序被排除在该列表之外,但它确实包括用户从 Finder 启动的任何应用程序。它还包括一些您不想弄乱的东西(Finder 本身和登录窗口进程),以及匿名应用程序。

您可以使用filteredArrayWithPredicate:过滤掉它们;您想要保留的对象有 activationPolicy NSApplicationActivationPolicyRegular

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

Apple 有一个示例项目可以演示所有这些,名为 AppList .

关于objective-c - 获取进程列表并隐藏特定应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531379/

相关文章:

ios - 在方法参数中指定对象的协议(protocol)

cocoa - 如何使自定义 View 中的 NSTextField 成为第一响应者?

MacOS:NSPredicate 查找 "one to one"关系不为零的地方

macos - WKWebView osx 设置背景颜色

python-3.x - 设置窗口图标 tkinter macosx

ios - 如何在结构定义中定义CGPoints数组?

iphone - 如何将一个 NSMutableArray 中的最后三 block 数据复制到另一个 NSMutableArray 中?

iphone - 如何将登录信息附加到文本文件

在 64 位架构中构建时的 Cocoa NSInteger

objective-c - 如何在 ios 中将 y-planar、u-planar 和 uv-planar 与 yuv bi planar 分开?