swift - 对于 OSX 应用程序,您如何使用 Swift 中的 NSTask 类获取用户窗口等信息?

标签 swift nstask

如果我能更好地了解用户是否正在运行某些特定程序(例如 word 或 chrome 等),我可以解释自己。

我会在编写代码或查找更多信息时尝试更新我的问题。

谢谢(:

最佳答案

你不必通过NSTask,你可以使用Cocoa的NSWorkspace来获取正在运行的应用程序列表:

import Cocoa
let apps = NSWorkspace.sharedWorkspace().runningApplications

它返回一组 NSRunningApplication 对象。

假设您想要数组中正在运行的应用程序名称:

let appsNames = apps.flatMap { $0.localizedName }

如果您想知道 iTunes 是否正在运行:

if appsNames.contains("iTunes") {
    // iTunes is running
}

请注意,查找正在运行的应用程序的更精确方法是使用包标识符:

let bundleNames = apps.flatMap { $0.bundleIdentifier }
if bundleNames.contains("com.apple.iTunes") {
    // iTunes is running
}

如果您想知道哪个应用处于事件状态(其窗口位于最前面):

let actives = apps.filter { $0.active }
if let active = actives.first {
    // "active" is the frontmost app
}

关于swift - 对于 OSX 应用程序,您如何使用 Swift 中的 NSTask 类获取用户窗口等信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37646605/

相关文章:

ios - 为什么会有弱者和无主?为什么我们不能总是使用 weak?

objective-c - NSTask 'launch path not accessible'

swift - 在 NSTask 中使用打开命令

objective-c - cocoa 沙盒应用程序 : Spawn FFMPEG

ios - Swift 视频缩放器 AVAsset

swift - 用泛型基类的泛型覆盖属性

objective-c - 启动后写入 NSTasks 标准输入

objective-c - 如何从我的 Cocoa 应用程序在终端中运行命令?

ios - IBDesignable View 内的 IBInspectable 按钮

ios - 为什么我有这个 showAlert 错误?