【问题标题】:Getting process list and hiding a specific app获取进程列表并隐藏特定应用
【发布时间】:2011-06-30 07:30:51
【问题描述】:

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

【问题讨论】:

  • 这可能是一个很长的弹出菜单。 (仪器很好地证明了这一点。)您可以考虑在表格视图中列出流程。
  • 我不介意弹出代码是什么

标签: objective-c cocoa macos


【解决方案1】:

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

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

一旦数组被过滤,您可以搜索它,使用bundleIdentifierbundleURLlocalizedName 来查找您想要的应用程序。然后将hideterminate 发送到NSRunningApplication 实例。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多