gpt4 book ai didi

user-interface - AppleScript:获取所有桌面上的窗口列表

转载 作者:行者123 更新时间:2023-12-04 11:34:33 29 4
gpt4 key购买 nike

我需要对每个应用程序的所有窗口进行计数。我尝试这样做的每一种方式,我都只能获得分配给当前(任务控制)桌面的窗口计数。 (我目前运行的是 Mac OS X 10.7,所以在 Spaces 之后。)有没有办法获得所有桌面上所有窗口的每个应用程序计数?

我尝试过的关键:

tell application "System Events"
repeat with _app in (every process whose visible is true)
tell _app
log (name as string) & ": " & (count of every window)
end tell
end repeat
end tell

请注意 whose visible is true条款不是问题。它会找到所有合适的进程,但是一旦我询问 windows 进程,它们只会计算事件桌面中的进程。

我试过拉 log线出 tell并使用 name of _appcount of every window of _app ,但没有区别。我试过抓除 process 以外的东西来自 System Events ,但任何有用的东西最终实际上只是获得相同对象的不同方式。我试过迭代 UI elements ,但没有显示不在当前桌面上的窗口,尽管我确实为每个应用程序提供了一个菜单栏。

我可以遍历所有桌面(尽管实际上并未切换到所有桌面),但我什至找不到获取桌面列表的方法。 This answer声称描述了如何做到这一点,但我只在 every desktop 中得到一个元素.并不是说一旦你有了那个桌面对象,就有一种明显的方法来获取窗口。

还值得指出的是,桌面由 Dock 控制,而不是由 Mission Control 控制。我不知道 AppleScript 有什么方法可以与 Dock 对话,所以如果您知道某些事情,那么有关该问题的答案或评论可能会帮助我指明正确的方向。

我是在尝试做一些不可能的事情吗?

最佳答案

我运行了你的代码,将 Applescript 版本设置为 2.4(习惯性地这样做);在第一次运行时,您的代码向我显示了每个应用程序所有窗口的适当数量。
这段代码是我试过的,结果似乎还算满意。有什么我没有看到的吗?

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions


tell application "System Events"
set my_list to {}
repeat with _app in (every process whose visible is true)
tell _app
log (name as string) & ": " & (count of every window)
set my_list to my_list & {name as string, count of every window}
end tell
end repeat
log my_list
end tell

关于user-interface - AppleScript:获取所有桌面上的窗口列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20554602/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com