You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AppleScript的whose关键字获取所有运行中的应用程序?

AppleScript中whose关键字的正确用法(针对获取运行中应用场景)

我懂你纠结whose关键字用法的心情,之前你写的set open_applications to get application whose running is true其实差了点小细节——这里应该用复数的applications而不是单数application,因为你要筛选的是应用集合,不是单个应用。

正确获取所有运行中应用的写法

直接用applications(或every application)结合whose就能实现无交互的筛选:

set running_applications to every application whose running is true

或者更简洁的版本:

set running_applications to applications whose running is true

运行这段代码后,running_applications会存储所有当前处于运行状态的应用对象,完全不需要交互检测。

再给你拓展几个whose的实用场景

除了筛选运行状态,还可以结合其他条件精准定位应用:

  • 筛选特定名称的运行中应用:
set is_safari_running to application "Safari" whose running is true
  • 筛选名称包含特定关键词的运行中应用:
set chrome_related_apps to every application whose name contains "Chrome" and running is true

关于whose的核心逻辑

whose关键字的作用是从一个对象集合中筛选出符合条件的元素,语法结构是:[可枚举对象集合] whose [条件表达式]。这里的集合必须是AppleScript支持枚举的类型(比如applications、windows、files等),单个对象用whose是无效的,这也是你之前代码报错的关键原因。

内容的提问来源于stack exchange,提问作者xfoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:45:32