Getting process list and hiding a specific app
How do I get a process list开发者_StackOverflow中文版 (in a popup button), and then when the user selects the application, can I hide/kill/minimize/quit the application?
-[NSWorkspace runningApplications]
will give you an NSArray
of NSRunningApplication
instances representing currently-running processes. I'm not exactly sure what causes a program to be excluded from that list, but it does include any application that the user has launched from the Finder. It also includes a couple of things (the Finder itself, and the loginwindow process) that you don't want to mess with, as well as faceless applications.
You can filter those out using filteredArrayWithPredicate:
; the objects you want to keep have an activationPolicy
of NSApplicationActivationPolicyRegular
.
Once the array is filtered, you can search it, using bundleIdentifier
, bundleURL
, or localizedName
to find the app you want. Then send hide
or terminate
as you like to that NSRunningApplication
instance.
Apple has a sample project that demos all this, called AppList.
精彩评论